EF4.3 中DatabaseGeneratedOption.Identity不起作用???EF早就支持枚举了???

属性为:

public  System.Guid ID { get; set; }

注册为:

HasKey(entity => entity.ID)
                .Property(entity => entity.ID)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

生成为 0000-0000-00000-00000

如果属性为

public DateTime CreateTime { get; set; }

Property(entity => entity.CreateTime)

                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

则干脆报datetime2 转为 datetime错误。

 在System.ComponentModel.DataAnnotations中有一个EnumDataType,明确写着使 .NET Framework 枚举能够映射到数据列。可以用吗???

哔哔one
浏览 436回答 8
8回答

料青山看我应如是

Entity Framework 4.3 不支持枚举

ABOUTYOU

我也想应该可以,但实际上是不行的,对了,我是在基类中定义GUID主键,基类不生成表,派生类生成表使用TPC方式,不知道是不是和这个有关,

开心每一天1111

@lifencheng: 这个我刚才试了一下,可以的。我再看看TPC方式。

BIG阳

我也想应该可以,但实际上是不行的,对了,我是在基类中定义GUID主键,基类不生成表,派生类生成表使用TPC方式,不知道是不是和这个有关, EnumDataType 是我想多了,objectdatasource中用的吧,不明白EF要等到5才行

蝴蝶刀刀

做个扩展方法搞定,虽然是很难看的方法。 TPC 方式下,对于Guid,HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)生成的都是0,只有显式定义才能在数据库生成默认值newid(),而对于非主键的DateTime来说,就是定义了也没用(如果要由数据库生成还是要定义),只能在SetInitializer中再修改了。
打开App,查看更多内容
随时随地看视频慕课网APP