开发者

How to map parent column in EF 4.1 code first

开发者 https://www.devze.com 2023-03-20 14:22 出处:网络
In my project I have fol开发者_如何学运维lowing DomainModel. public class Login { public Guid Id { get; set; }

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

精彩评论

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