gpt4 book ai didi

c# - 如何在 Entity Framework 4.1 的 Code-First Fluent API 中以编程方式定义关系

转载 作者:可可西里 更新时间:2023-11-01 07:45:59 25 4
gpt4 key购买 nike

我正在玩弄新的 EF4.1 unicorn love。

我正在尝试了解可以使用代码优先以编程方式 定义几个简单 POCO 之间的关系的不同方式。

如何定义以下内容 =>

  1. 1 Team 有 0-many User。 (并且 User 在 1 个 Team 中)
  2. 1 User 有 0 或 1 个 Foo(但是 Foo 没有返回给 User 的属性)
  3. 1 User 有 1 个 UserStuff

最佳答案

这里有您正在寻找的示例:

public class User
{
public int Id { get; set; }
...
public Foo Foo { get; set; }
public Team Team { get; set; }
public UserStuff UserStuff { get; set; }
}

public class Team
{
public int Id { get; set; }
...
public ICollection<User> Users { get; set; }
}

public class Foo
{
public int Id { get; set; }
...
}

public class UserStuff
{
public int Id { get; set; }
...
}

public class Context : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Foo> Foos { get; set; }
public DbSet<Team> Teams { get; set; }
public DbSet<UserStuff> UserStuff { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasRequired(u => u.Team)
.WithMany(t => t.Users);

modelBuilder.Entity<User>()
.HasOptional(u => u.Foo)
.WithRequired();

modelBuilder.Entity<User>()
.HasRequired(u => u.UserStuff)
.WithRequiredPrincipal();
}
}

关于c# - 如何在 Entity Framework 4.1 的 Code-First Fluent API 中以编程方式定义关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368029/

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