【发布时间】:2014-04-19 21:54:47
【问题描述】:
我有一个用户模型
public class User {
public Guid IdGuid {get;set;}
public string Name {get;set;}
public virtual List<User> Friends {get;set;}
}
我还有第二个模型
public class UserFriendship{
public Guid FriendShipIdGuid {get;set;}
public Guid UserIdGuid {get;set;}
public Guid FriendIdGuid {get;set;}
}
我在上下文中有 FluentApi 代码 OnModelcreating。
modelBuilder.Entity<User>().HasMany(u => u.Friends).WithMany().Map(c => {
c.MapLeftKey("UserIdGuid");
c.MapRightKey("FriendIdGuid");
c.ToTable("UserFriendship");
});
问题:我已经有一个UserFriendship 类模型。我想创建有关用户与此模型的关系。我正在使用 FluentApi 进行操作。
但在 FluentApi 代码执行后,FriendShipIdGuid 会从 UserFriendship 表中删除。
我需要为用户创建一对多关系,并将其保存到表UserFriendship 并将它已经存在的类模型名称映射到UserFriendship dbset 的哪个元素。
你能帮帮我吗?
作为总结,我已经有UserFriendship 类。而这个类包含FrientshipGuidId(Key)、UserIdGuid、FriendIdGuid。
我需要将User 类一对多映射到自身。
我想将这种关系保存在UserFriendship 类上。
我也想使用Userfriendship 作为数据库集。
我有
public DbSet<UserFriendship> Friendships { get;set; }
在我的上下文中。
我正在使用 FluentApi ToTable 函数创建一对多关系表。
但是 FluentApi 代码删除了FriendshipIdGuid 字段。
【问题讨论】:
-
您是否尝试将 Code First 与现有表一起使用?
-
@mostruash 是的。流利创建的现有表。但我也需要将此 UserFriendship 用作数据库集。我将把这个友谊数据用于用户类属性。该属性是 List
Friends 。那可能吗 ?我需要从 UserFriendship 表中生成 User.Friends 列表,我还需要使用 UserFriendship 作为 DbSet。
标签: c# sql-server entity-framework map fluent