Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF Code first MVC:我应该向默认的AspNetUsers表添加字段还是创建另一个';用户信息';与AspNetUsers表相关的表?_C#_Asp.net Mvc_Entity Framework_Registration - Fatal编程技术网

C# EF Code first MVC:我应该向默认的AspNetUsers表添加字段还是创建另一个';用户信息';与AspNetUsers表相关的表?

C# EF Code first MVC:我应该向默认的AspNetUsers表添加字段还是创建另一个';用户信息';与AspNetUsers表相关的表?,c#,asp.net-mvc,entity-framework,registration,C#,Asp.net Mvc,Entity Framework,Registration,我正在使用代码优先实体框架制作一个简单的MVC应用程序。我正在尝试使用内置的用户注册/登录。它为我提供了默认的AccountController和 我的其他实体是玩家、游戏和锦标赛: public class Player { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public List<Ga

我正在使用代码优先实体框架制作一个简单的MVC应用程序。我正在尝试使用内置的用户注册/登录。它为我提供了默认的AccountController和

我的其他实体是玩家、游戏和锦标赛:

public class Player
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public List<Game> Games { get; set; }
    public List<Tournament> Tournaments { get; set; }
}

public class Game
{
    public int Id { get; set; }
    public string Title { get; set; }
    public List<Player> Players { get; set; }
    public List<Tournament> Tournaments { get; set; } 
}

 public class Tournament
{
    public int Id { get; set; }
    public List<Player> Players { get; set; }
    public List<Game> Games { get; set; }

}
公共类播放器
{
公共int Id{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共列表游戏{get;set;}
公开列表锦标赛{get;set;}
}
公开课游戏
{
公共int Id{get;set;}
公共字符串标题{get;set;}
公共列表玩家{get;set;}
公开列表锦标赛{get;set;}
}
公开课比赛
{
公共int Id{get;set;}
公共列表玩家{get;set;}
公共列表游戏{get;set;}
}
EF提供

每个登录的人都是玩家。我希望每个玩家都有一个密码和用户名。我是否应该删除我的
Player
表,并将
Player
属性添加到提供的
User
类和
AspNetUsers
表中?或者我应该使用外键在
Players
表和
AspNetUsers
表之间创建关系吗

这些选项中的一个或两个是否可能/更可取

另外,只需注意,在玩家、游戏和锦标赛类中会有额外的属性;我只是从基础开始

非常感谢您抽出时间。如果我不清楚或者您需要任何其他信息,请告诉我

编辑: 刚找到这个:


它显示了我上面描述的两种方法。与向现有表中添加字段相比,添加新的UserInfo表有什么好处?

向ApplicationUser类添加属性。另外,我建议您将其重命名为Player,这样代码将更好地匹配域语言。

我会将此属性添加到Player表中:

public virtual ApplicationUser User { get; set; }
var userId = User.Identity.GetUserId();
Player.PlayerId = userId;
其中ApplicationUser是Visual Studio提供的开箱即用表。 ApplicationUser使用标识,因此当用户创建新玩家时,playerController的创建操作将用户的用户id设置为玩家表中的玩家id:

public virtual ApplicationUser User { get; set; }
var userId = User.Identity.GetUserId();
Player.PlayerId = userId;

如果需要注册
Player
类中的信息,那么它应该是
User
表的一部分非常感谢您的帮助。我尝试将属性添加到应用程序用户
FirstName
LastName
在迁移后未在我的数据库中结束,并且在尝试使用名字和姓氏注册用户时遇到
500内部服务器错误。请让我知道,如果你有任何想法,可能是什么原因造成这一点。谢谢你的支持time@ranquild答案对OP来说是完全无用的。