Omu*_*Omu 39 code-first entity-framework-4 ef4-code-only entity-framework-ctp5
我有这个班级和表格:
public class Foo
{
public Guid Id {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
create table Foo
(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
name nvarchar(255)
)
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试保存新的foo时,第一个使用了0000-000-00 ... id和第二个也是,所以我得到了约束异常
有谁知道修复?
Dev*_*art 71
你有没有设置Identity StoreGeneratedPattern?
你可以在OnModelCreating
方法中做到:
modelBuilder.Entity<Foo>().Property(o => o.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Run Code Online (Sandbox Code Playgroud)
或使用DataAnnotation属性:
public class Foo {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id {get;set;}
public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
Man*_*rin 16
刚刚开发Devart的解决方案,我遇到了这个问题并使用了
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
Run Code Online (Sandbox Code Playgroud)
数据注释不起作用.原因是我正在使用(如代码第一个教程之一中所建议的)一个SqlServerCompact数据库,它不支持Guid作为标识.只是想我会发布在这里以防其他人有这个问题.如果更改连接字符串以便创建SqlServer mdf而不是Compact数据库,则它可以正常工作.
归档时间: |
|
查看次数: |
10990 次 |
最近记录: |