0

文字列を渡す関数があり、linq to entity を使用して、渡した文字列値がデータベースに既に存在するかどうかを確認します。この目的のために、この関数を作成しました。

    public static bool UserExistChk(String StrUserId) {
            using (SBVEntities dbcontx = new SBVEntities())
           {
                return dbcontx.Users.Contains(dbcontx.Users.FirstOrDefault(e => e.UserID == StrUserId));

           }
    }

しかし、エラーが発生します-「MySBVApp.Models.User」型の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。

エンティティ フレームワークと linq が初めての私を助けてください。

4

3 に答える 3

1

Anyこれには拡張メソッドを使用できます。

public static bool UserExistChk(String StrUserId)
{
  using ( SBVEntities db = new SBVEntities() )
  {
    return db.Users.Any( o => o.UserID == StrUserId );
  }
}
于 2013-01-26T12:52:45.340 に答える
0

こんな感じになります。

           using (SBVEntities dbcontx = new SBVEntities())
           {
              return (dbcontx.Users
                             .FirstOrDefault(e => e.UserID == StrUserId) != null 
                             ? true : false); 
           }
于 2013-01-26T12:21:04.247 に答える
0

あなたが使用することができます:

public static bool UserExistChk(String StrUserId) 
{
    using (SBVEntities dbcontx = new SBVEntities())
    {
        var query = from u in dbcontx.Users
                    where u.UserId.Contains(strUserId)
                    select u;
    }
    Return query.Count > 0
}
于 2013-01-26T12:46:32.363 に答える