gpt4 book ai didi

c# - Entity Framework 中记录插入的空引用异常

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:54 25 4
gpt4 key购买 nike

<分区>

我有一个简单的 2 表数据库,其中包含用户和组。以下是表格的列:

用户:

  • 用户名
  • 用户名
  • 组号

群组:

  • 组号
  • 组名

下面是生成的类:

public partial class Group
{
public Group()
{
this.Users = new HashSet<User>();
}

public int GroupID { get; set; }
public string GroupName { get; set; }

public virtual ICollection<User> Users { get; set; }
}

-

public partial class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public Nullable<int> GroupID { get; set; }

public virtual Group Group { get; set; }
}

我需要制作一种方法,将用户插入到给定的组中。如果该组不存在,则应创建它。我正在使用 Entity Framework 。这是一些代码:

public class Entry
{
public static void Main()
{
using (var dbContext = new UserSystemEntities())
{
var user = new User();
user.UserName = "h4x0r";

AddUserToGroup(dbContext, "Admins", user);

Console.WriteLine("User {0} added successfully.", user.UserName);
}
}

public static void AddUserToGroup(UserSystemEntities dbContext, string groupName, User user)
{
using (var dbTransaction = dbContext.Database.BeginTransaction())
{
var group = dbContext.Groups.FirstOrDefault(x => x.GroupName == groupName);

try
{
if (group == null)
{
var newGroup = new Group();
newGroup.GroupName = groupName;

dbContext.Groups.Add(newGroup);
}

dbContext.Groups.FirstOrDefault(x => x.GroupName == group.GroupName).Users.Add(user);
dbContext.SaveChanges();
}
catch(Exception ex)
{
Console.WriteLine("Error occured! " + ex.message);
dbTransaction.Rollback();
}

dbTransaction.Commit();
}
}
}

将用户添加到组中时出现问题:

dbContext.Groups.FirstOrDefault(x => x.GroupName == group.GroupName).Users.Add(user);

抛出一个 Null Reference Exception,我就是想不通为什么。现在盯着它大约20分钟,仍然找不到答案。为什么我想念?

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