私はエンティティ データ モデルに取り組んでおり、SQL Server 2005 DB のテーブルにレコードを挿入するメソッドを作成しました。レコードを挿入する前に、同じ名前のユーザーがテーブルに既に存在するかどうかを確認します。これはクラス ライブラリで、Asp.net Web アプリケーションでこれを参照しています。この Insert メソッドを Web アプリケーションから呼び出すと、「シーケンスに要素が含まれていません」という例外が発生します。
checkUserExist 関数をコメントすると、レコードが DB に挿入されます。
これが私のソースコードです。
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 メソッドで例外が発生しています。