实体框架核心:如何映射相同类型的多个对象

时间:2017-08-09 22:26:47

标签: c# .net-core entity-framework-core

我有两个类,一个用于User,另一个用于Warn,用户可以接收,我想要映射它们,但我有一个这样做的问题。

using System;
using System.Collections.Generic;
using System.Linq;

namespace web
{
    public class User
    {
        public User()
        {
        }

        public ICollection<MuteWarn> Mutes { get; set; }
        public ICollection<Warn> Warns { get; set; }
        public ICollection<Ban> Bans { get; set; }
        public ICollection<Kick> Kicks { get; set; }
        public int Id { get; set; }
        public ulong DiscordId { get; set; }
        public bool AntiBan { get; set; }
        public ICollection<string> Permissions { get; set; }
        public Level Level { get; set; }
        public Mute CurrentMute { get; set; }

        public string Name { get; set; }
        public int Discrim { get; set; }
        public string AvatarUrl { get; set; }
        public Guild Guild { get; set; }

        public bool HasPermission(string perm)
        {
            var res = Permissions.Where(x => x == perm);
            if(res != null) return true;
            return false;
        }
    }
}

这是User类,这里是Warn类:

using System;

namespace web
{
    public class Warn
    {
        public Warn()
        {
              Moderator = DataHelper.GetDefaultModerator();
        }

        public int Id { get; set; }
        public string Reason { get; set; }
        public DateTime Timestamp { get; set; }
        public User Moderator { get; set; }

        public User User { get; set; }
        public Guild Guild { get; set; }
    }
}

正如您所看到的,此类中有两个类型为User的对象,我想从User类中访问它们,如下所示:

foreach(var w in User.Warns)
{
     Console.WriteLine(w.Reason); 
     Console.WriteLine(w.Moderator.Name); 
}

等等。

主持人和用户是两个独立的用户(即使他们可以是同一个人)。

主持人是发出此警告的人,用户是收到警告的用户。

每个用户都可以无限次发出警告。

出于某种原因,这不会构建,因为它无法找到主持人和用户之间的关系。

请帮忙,谢谢。

0 个答案:

没有答案