У меня есть следующая проблема с моими идентификаторами обновления при посеве на мой db:
context.ClientPromos.AddOrUpdate(
cp => new { cp.ClientID, cp.Recommendation_ID, cp.PromoCode_ID },
new ClientPromo
{
ClientID = 0,
Recommendation_ID = Rec30Off.RecommendationID,
PromoCode_ID = pc30PerOffProd.PromoCodeID
},
new ClientPromo
{
ClientID = 0,
Recommendation_ID = RecKnow.RecommendationID,
},
new ClientPromo
{
ClientID = 0,
Recommendation_ID = RecCall.RecommendationID,
},
);
context.SaveChanges();
Так как cp.Recommendation_ID
и cp.PromoCode_ID
являются int? datatypes
, он получает следующую ошибку:
Бинарный оператор Equal не определен для типов 'System.Nullable`1 [System.Int32]' и 'System.Int32'.
Я просмотрел эту статью и добавил код modelBuilder
- IsOptional()
, описанный, но он не работает для меня, и я получаю ту же ошибку в этом вопросе.
Если я изменил:
cp => new { cp.ClientID, cp.Recommendation_ID, cp.PromoCode_ID }
To:
cp => new { cp.ClientID }
Он отлично работает, однако это не сработает, если мне нужно будет обновить запись, она будет просто дублировать каждую запись в таблице.