对象引用未设置为 C# 中的对象实例

本文关键字:对象 实例 设置 对象引用 | 更新日期: 2023-09-27 18:35:59

我有一个服务,我正在尝试添加新用户。如果用户已经存在,则不应添加,但我收到错误。对象引用设置为实例对象"

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string AddUsers(UsersJSON UserJSON)
    {
        using (var context = new Data.DataEntities())
        {
            var users = context.Users.Where(c => c.UserId == UserJson.UserId).FirstOrDefault();
            var newuser = new Users();
            {
                if (users.UserId != UserJson.UserId)//error here
                {
                    newuser.UserId = UserJson.UserId;
                    newuser.FirstName = UserJson.FirstName;
                    newuser.LastName = UserJson.LastName;
                }
            }
            context.Users.Add(newuser);
            context.SaveChanges();
            JavaScriptSerializer JSON = new JavaScriptSerializer();
            return JSON.Serialize(newuser);
        }
    }

对象引用未设置为 C# 中的对象实例

您正在使用可能返回 null 的.FirstOrDefault。所以你需要防范这种情况。

var users = context.Erp_Users.Where(c => c.UserId == erpUserJson.UserId).FirstOrDefault();
var newuser = new Erp_Users();
{
    if (users != null && users.UserId != erpUserJson.UserId)//no error here
    {
        ...