2

我正在定义 POCO,与 Entity Framework 4.0 的 Code First 功能一起使用。

但是由于我的数据来自外部源,并且我想保持标识列与外部源相同,所以我想自己设置 ID。

在调用 DbContext.Add() 和 context.SaveChanges() 之前,我在代码中设置了 ID,但 ID 值被忽略并由 DB 列上定义的自动增量 (AI) 设置。

数据库是 mySQL,由 EF 自动生成。

有谁知道如何防止在 ID 列上创建 AI 属性,或者尽管列是这样定义的,但仍显式设置实体 ID?

编辑:我从@flem 得到的答案对我有用。但是我也需要一个稍微不同的场景才能工作:是否可以以这样的方式定义 POCO,当我设置值时它会使用它,而当我不设置值时,它会自动递增?根据this mySQL forum answer mySQL应该可以很好地处理这种情况,但似乎实体框架没有......

4

1 回答 1

7

将数据库生成设置为无。

[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
于 2012-07-23T12:11:46.880 回答