【发布时间】:2014-11-13 08:19:50
【问题描述】:
假设数据库中有两个表:
User
int UserId
string Name
Task
int TaskId
string Description
int TaskCreatorId
int TaskAssigneeId
在Task和User之间定义了两个外键:TaskCreatorId – UserId和TaskAssigneeId - UserId
我已经有数据库,并使用“数据库优先”的方法。在 Entity Framework 中使用 Code Generation,会自动创建两个 POCO 类:
用户.cs
public int UserId
public string Name
public ICollection<Task> Tasks
public ICollection<Task> Tasks1
Task.cs
public int TaskId
public string Description
public int TaskCreatorId
public int TaskAssigneeId
public User User
public User User1
为了有有意义的实体,我必须改变:
public ICollection<Task> Tasks --> public ICollection<Task> CreatedTasks
public ICollection<Task> Tasks1 --> public ICollection<Task> AssignedTaska
和
public User User --> public User TaskCreator
public User User1 --> public User TaskAssignee
如果我转到 Model.edmx 并在 Model Browser –> Associations 中进行更改并设置所需的映射,它会在第一次从数据库更新后被覆盖。
如何做到这一点?
【问题讨论】:
-
您是否进行了新的 EF 迁移?我不确定这是否是数据库优先方法的正确方法......
-
你究竟做了什么改变?类模型中的更改不应被模型更新覆盖。
标签: c# entity-framework poco ef-database-first