Bri*_*uce 10 c# entity-framework seed code-first ef-migrations
在播种到我的数据库时,我的更新标识符存在以下问题:
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();
Run Code Online (Sandbox Code Playgroud)
既然cp.Recommendation_ID和cp.PromoCode_ID是int? datatypes,它会收到以下错误:
没有为类型'System.Nullable`1 [System.Int32]'和'System.Int32'定义二元运算符Equal.
我查看了这篇文章,并添加了modelBuilder- IsOptional()所描述的代码,但它对我不起作用,我在这个问题中得到了同样的错误.
如果我改变:
cp => new { cp.ClientID, cp.Recommendation_ID, cp.PromoCode_ID }
Run Code Online (Sandbox Code Playgroud)
至:
cp => new { cp.ClientID }
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是如果我需要更新记录它将只复制表中的每个记录,这将不起作用.
Entity Framework AddOrUpdate方法中存在错误.我在EF存储库中创建了一个问题:
https://github.com/aspnet/EntityFramework6/issues/9
Meh*_*rad -1
我不确定您对可空类型(C# 编程指南)有多熟悉,但长话短说,正如其名称所代表的那样,
可空类型可以表示其基础值类型的正确值范围,以及附加的空值。
您可以将普通类型分配给可为 null 的类型,但反之则不然,因为当值为 null 时null我们会遇到麻烦,因此编译器会在编译时捕获此错误。
但是,如果这是您唯一的方法,则有更简单的方法可以解决此问题,并且一个简单的 if 语句将在分配之前解决所有问题。
var myIntVar = myIntVar_Nullable ?? default(int);
Run Code Online (Sandbox Code Playgroud)
这是一个语法糖
var myIntVar = myIntVar_Nullable == null ? default(int) : myIntVar_Nullable;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |