我是EF(v6.1)的新手。尝试使用Code-First方法。
我想在SQL服务器端(newsequentialid()
)生成Id列,但是能够覆盖这些值。
我的代码:
[Key, Required, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
这导致完美的SQL:
[Id] [uniqueidentifier] NOT NULL DEFAULT (newsequentialid())
但是,EF只是忽略了我设置为Id
属性的任何值,并将null传递给SQL。基本上后续测试不起作用:
MyContext context = new MyContext();
MyClass item = new MyClass();
Guid id = Guid.NewGuid();
item.Id = id;
context.MyTable.Add(item);
context.MyTable.Create();
context.SaveChanges();
Assert.AreEqual(item.Id, id);
我应该怎么做才能让我的测试工作?
答案 0 :(得分:1)
如果您想手动设置Phone
$sqlshow =@ mysqli_query($con,"SELECT `id`, `Registration_No`, `First_Name`, `Middle_Name`, `Sir_Name`, `Sex`, `Birth_Day`, `Email`, `Address`, `Phone` FROM `cdtistudent`
WHERE id=40");
while($row = @mysqli_fetch_object($sqlshow))
{
媒体资源,请删除Guid
属性:
Id
如果将PK属性配置为DatabaseGenerated
,则会在数据库中生成该值。此外,您不需要将此属性标记为[Key]
public Guid Id { get; set; }
,默认情况下需要PK属性。