===============问题================
首先,我正在使用实体框架(代码优先)。我有以下课程:
public class RandomObject
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column(Order = 1)]
public int Id { get; protected set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column(Order = 2)]
public Guid UniqueId { get; protected set; }
public string Other { get; set; }
}
我也有一个迁移文件夹(程序包),在其中为一些对象播种数据库。
private void AddDefaultObjects(Context context)
{
var object1 = new RandomObject{ Other = "qsdf1" };
var object2 = new RandomObject{ Other = "qsdf2" };
var object3 = new RandomObject{ Other = "qsdf3" };
var objects = new RandomObject[3]{object1 , object2 , object3 };
context.RandomObjects.AddOrUpdate(object => object.Id, objects);
context.SaveChanges();
}
但是,当我添加对象时,它们都获得相同的UniqueId => NOK(但具有不同的Id => OK)
===============尝试================
我尝试添加属性
[Index(IsUnique = true)]
或设置(在我的迁移配置文件中)
column.DefaultValueSql = "newid()";
===============结果================
Id | UniqueId
--------------------------------------------
19 | db1e353e-7dd7-e311-8250-8c89a5c20da1
20 | dc1e353e-7dd7-e311-8250-8c89a5c20da1
21 | dd1e353e-7dd7-e311-8250-8c89a5c20da1
尝试一下...。我认为您AddOrUpdate
需要在第一个参数中同时使用复合主键的两个部分:
context.RandomObjects.AddOrUpdate(object =>
new { object.Id, object.UniqueId },
objects);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句