我定义了POCO,与Entity Framework 4.0的Code First功能一起使用。
但是由于我的数据来自外部源,并且我想保持标识列与外部源的相同,我想自己设置ID。
我在调用DbContext.Add()&之前在我的代码中设置了ID。 context.SaveChanges(),但ID值被忽略并由DB列上定义的自动增量(AI)设置。
数据库是mySQL,由EF自动生成。
有谁知道如何阻止在ID列上创建AI属性,或者显式设置实体ID,尽管列是这样定义的?
编辑:我从@flem得到的答案适合我。但我需要一个稍微不同的场景才能工作: 是否有可能以这样的方式定义POCO,当我设置它将使用它的值时,当我不这样做时,它会自动递增? 根据{{3}} mySQL应该很好地处理这个场景,但似乎实体框架没有......
答案 0 :(得分:7)
将数据库生成设置为无。
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }