使用实体数据模型和Linq将记录插入表时出错

时间:2013-01-17 05:16:45

标签: ado.net ado.net-entity-data-model

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

当我对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;
    }
}

任何建议/解决方案请...谢谢。 我在User u1 = entity.Users.First(u => u.username == uname);

的CheckUserExist方法中遇到异常

1 个答案:

答案 0 :(得分:0)

使用以下方式重写CheckUserExist

private static bool CheckUserExist(string uname)
{
    using(SolVeEntities entity = new SolVeEntities())
    {
        return entity.Users.Any(u => u.username == uname);
    }
}