如何首先在 EF 4.1 代码中映射父列

发布于 2024-11-24 12:30:11 字数 729 浏览 1 评论 0原文

在我的项目中,我有以下 DomainModel。

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

我使用如下流畅的配置:

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

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

我在存储库中获取所有登录数据的代码如下:

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

当我执行代码时,我收到以下错误:

外键组件“CreatedBy”不是类型“上声明的属性”登录'。验证它是否没有从模型中明确排除,并且它是一个有效的原始属性。

任何人都可以建议我在这里做错了什么吗?

提前致谢

In my project I have following 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

漫雪独思 2024-12-01 12:30:11

..尚未明确从模型中排除,并且它是一个
有效的原始属性

您的外键映射 .HasForeignKey(x => x.CreatedBy) 不使用原始属性。

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

然后将其映射为

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

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

.. 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"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文