jda*_*vis 6 entity-framework entity-framework-4
我正在使用实体框架(数据库优先),我正在尝试将旧数据库中的一堆数据导入到我们的新数据库中.在某些情况下,对象ID在新数据库中保持与旧数据库相同是很重要的.通常,当您创建新对象并调用context.SaveChanges()时,它将自动为ID列分配标识值.
目前,我将在代码中设置新的对象ID,但是一旦我调用了context.SaveChanges(),它就会被Entity Framework分配的新对象覆盖.
我需要能够手动设置新对象中的ID,并在调用context.SaveChanges()后保留它.
Database Generated Option也可以指定为属性本身的属性,而不是使用流畅的API.
public class Foo
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public virtual int Id { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
您可以StoreGeneratedPattern在模型设计器(或EDMX文件)中设置实体的键属性None.对于整数键列,它是Identity默认值,这意味着Entity Framework不会将键值发送到数据库,因为它期望数据库将创建键.如果模式是None它,则将值发送到您为实体提供的数据库.
(对于DbContext(EF> = 4.1),它被调用DatabaseGeneratedOption.)
当然,同时您还需要关闭数据库表中键列的Identity规范.
| 归档时间: |
|
| 查看次数: |
7406 次 |
| 最近记录: |