gpt4 book ai didi

.net - Entity Framework 代码优先 : One-to-One where PK is a FK

转载 作者:行者123 更新时间:2023-12-02 05:35:24 25 4
gpt4 key购买 nike

我想像这样使用 Entity Framework 5 Code First 映射一对一关系:

public class User
{
public Guid Id { get; set; }
}

public class Profile
{
public User Owner { get; set; }
}

请注意,数据库 Profile 表 架构有一个主键 UserId,它是 外键用户表。

我想知道我是否可以在配置文件表中避免使用人工标识符

提前致谢!



更新

嗯,Erangahvd 的答案似乎都很有用。通过自己的一些贡献,我获得了一个成功创建具有归属配置文件的用户的交易。

  • hvd => 对象模型中不需要人工标识符
  • Erlanga => 您的方法可行,但它强制您在数据库中有一个 [Id] 列

有没有人找到即使在数据库表中也能避免人工标识符的方法?

最佳答案

使用流畅的 API 来映射关系。

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Profile>()
.HasRequired(p => p.Owner)
.WithOptional();
}

更新:

一对一关系只能在使用称为“共享主键”的映射技术中建模。即依赖实体的PK也是FK。依赖实体(即 Profile)中没有人工标识符,因为它指的是独立实体(即User)的 PK 值)

关于.net - Entity Framework 代码优先 : One-to-One where PK is a FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com