0

我正在研究实体数据模型,并且我创建了一种将记录插入到 sql server 2005 DB 表中的方法。在插入记录之前检查表中是否已经存在同名用户。这是一个类库,我在 Asp.net Web 应用程序中引用它。当我从 Web 应用程序调用此 Insert 方法时,我得到异常为“序列不包含元素”。

当我评论 checkUserExist 函数时,记录正在插入到数据库中。

这是我的源代码。

public class EntityClass
{
    public static string InsertRecord(string username, string domain, string host)
    {
        bool isExist = false;
        bool returnNull = false;
        try
        {

            SolVeEntities entity = new SolVeEntities();
            User ud = new User();

            //before inserting user into the table, verify whether User already exist
            isExist = CheckUserExist(username);

            if (!isExist)
            {
                ud.username = username;
                ud.domain = domain;
                ud.host = host;
                ud.datetime = DateTime.Now;

                entity.Users.AddObject(ud);
                entity.SaveChanges();
            }
            else { returnNull = true;

            }
        }
        catch (Exception ex)
        {

        }

        if (returnNull)
        return "user " + username + " already Exist";
        else
            return username + domain + host;
    }

    private static bool CheckUserExist(string uname)
    {
        bool isExist = false;
        SolVeEntities entity = new SolVeEntities();
        User u1 = entity.Users.First(u => u.username == uname);
        if (u1.username == uname)
        {
            isExist = true;
        }
        else
        { isExist = false; }

        return isExist;
    }
}

任何建议/解决方案请...谢谢。我在用户 u1 = entity.Users.First(u => u.username == uname); 的 CheckUserExist 方法中遇到异常;

4

1 回答 1

0

CheckUserExist用以下方式重写:

private static bool CheckUserExist(string uname)
{
    using(SolVeEntities entity = new SolVeEntities())
    {
        return entity.Users.Any(u => u.username == uname);
    }
}
于 2013-01-17T07:20:26.017 回答