开发者

How to map parent column in EF 4.1 code first

In my project I have fol开发者_如何学运维lowing DomainModel.

public class Login
{
    public Guid Id { get; set; }
    public Login CreatedBy {get; set; }
}

I am using fluent configuration as below:

modelBuilder.Entity<Login>()
            .HasKey(x => x.Id)
            .ToTable("Login");

modelBuilder.Entity<Login>()
            .HasOptional(x => x.CreatedBy)
            .WithMany()
            .HasForeignKey(x => x.CreatedBy);

My code in repository to get all Logins data is as below:

return from d in Db.Logins.Include("CreatedBy") 
       select d;

When I execute the code I am getting following error:

The foreign key component 'CreatedBy' is not a declared property on type 'Login'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property.

Can anyone suggest what I am doing wrong here?

Thanks in advance


.. has not been explicitly excluded from the model and that it is a valid primitive property

Your foreign key mapping .HasForeignKey(x => x.CreatedBy) does not use a primitive property.

public class Login
{
    public Guid Id { get; set; }
    public virtual Login CreatedBy {get; set; }
}

Then map it like

modelBuilder.Entity<Login>()
            .HasKey(x => x.Id)
            .ToTable("Login");

modelBuilder.Entity<Login>()
            .HasOptional(x => x.CreatedBy)
            .WithMany()
            .Map(x => x.MapKey("ForeignKeyColumn"));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜