2013-10-08 104 views
0

由于我对EntityFramwork不太熟悉,所以我遇到了问题。我需要跟踪哪个用户创建了该交易以及哪个用户修改了该交易。这意味着我有两个属性具有相同的类。实体框架:具有相同类问题的两个属性

这里是交易类的属性列表:

public virtual System.DateTime DateCreated { get; set; } 
public virtual System.DateTime DateModified { get; set; } 
public virtual bool IsDeleted { get; set; } 
public virtual bool IsActive { get; set; } 
public virtual string Description { get; set; } 

public virtual User CreatedBy { get; set; } 
public virtual User ModifiedBy { get; set; } 

每当context.SaveChanges()叫我得到以下异常:

Unable to determine the principal end of an association between the types 'Model.Entities.User' and 'Model.Entities.User'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations. 
+0

所以..显示你流利的API /注释映射? –

+0

显示为您的映射,这两个类可能指向对方,因此无法确定主体结束。 –

回答

0

你应该重写OnModelCreating方法在你的DbContext并添加以下代码

modelBuilder.Entity<Transaction)() 
.HasOptional<User>(x => x.CreatedBy); 


modelBuilder.Entity<Transaction)() 
.HasOptional<User>(x => x.ModifiedBy); 

当然HasOptional也可以是必需的。

相关问题