gpt4 book ai didi

c# - 在同一个实体User中添加ICollection User

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:21 24 4
gpt4 key购买 nike

是否可能:它是一个 Messenger,其中实体用户内容 ICollection User 是集合 Friends 由相同的用户组成?如果可能的话,请告诉我如何在 DbContext 文件中创建它们之间的正确关系?或者如何更好地建立这种关系。可以创建单独的实体吗?提前致谢!

namespace Tinkl.Data.Core.Domain
{
public class User
{
public User()
{
Contacts = new List<User>();
Conversations = new List<Conversation>();
Invites = new List<User>();
}

public int UserId { get; set; }
public string NickName { get; set; }
public string EMail { get; set; }
public string Password { get; set; }
public DateTime? CreationDate { get; set; }
public DateTime? ExitDate { get; set; }
public string Picture { get; set; }
public string Status { get; set; }
public virtual ICollection<User> Invites { get; set; }
public virtual ICollection<User> Contacts { get; set; }
public virtual ICollection<Conversation> Conversations { get; set; }
}
}

最佳答案

你的方向是正确的,先看看我下面的代码,在 EF 代码中同类型的 self 关系

public class ContentEntityRef : BaseModel
{
public ContentEntityRef()
{
RoleRefs = new HashSet<RoleRef>();
}

public int EntityId { get; set; }

public string EntityName { get; set; }

public int? ParentEntityId { get; set; }

public virtual ICollection<RoleRef> RoleRefs { get; set; }

public virtual ContentEntityRef Parent { get; set; }

public virtual ICollection<ContentEntityRef> Children { get; set; }
}

我已经创建了单独的配置文件,您可以在 dbContext 的“OnModelCreating”方法中使用同样的方法。

internal class ContentEntityRefConfiguration : EntityTypeConfiguration<ContentEntityRef>, IEntityConfiguration
{
public ContentEntityRefConfiguration()
{
this.HasKey(x => x.EntityId).Property(t => t.EntityId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(x => x.EntityName).IsRequired().HasMaxLength(50);

this.HasMany(c => c.Children).WithOptional(c => c.Parent).HasForeignKey(c => c.ParentEntityId);

this.HasMany<RoleRef>(role => role.RoleRefs)
.WithMany(content => content.ContentEntities)
.Map(contentRole =>
{
contentRole.MapLeftKey("EntityID");
contentRole.MapRightKey("RoleID");
contentRole.ToTable("RoleEntityMap");
});
}
}

希望这对你有帮助:)

关于c# - 在同一个实体User中添加ICollection User,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40071577/

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