1

EFをLINQとで使用するプロジェクトを作成しますModel first。そのため、edmxに基づいて、データベースとクラスを作成しました。

だから私はいくつかの問題を抱えました。クリックして、コードが機能しているかどうかをテストしました。

protected void btnSearch_Click(object sender, EventArgs e)
{
    ZUser Zusr = new ZUser();
    List<ZUser> lst = Zusr.ListAll();
    // Zusr.Id = 1;

    string test = "";
    foreach (ZUser item in lst)
    {
        test = item.Name;
    }
    lblName.Text = test;
}

したがって、私のZUserクラス(コントローラー)では、次のコードを実行しました。

[Serializable]
public class ZUser : User
{
    String connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

    public List<ZUser> ListAll()
    {
        List<ZUser> lstUser = new List<ZUser>();
        using (DataContext db = new DataContext(connString))
        {
            Table<User> Users = db.GetTable<User>();
            var query =
                from usr in Users
                where usr.Name == "Test"
                select usr;

            foreach (ZUser usr in query)
                lstUser.Add(usr);
        }

        return lstUser;
    }
}

そして私のモデル(私のedmxによって生成されたクラス

namespace System.Model
{
    //[Table]
    public partial class User
    {
        public int Codigo { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public string Password { get; set; }
        public DateTime Created { get; set; }
        public DateTime LastLogin { get; set; }
    }
}

問題

  1. [Table]Modelクラスにを入れないと(追加しました)、このエラーが発生しました。これが正しい修正方法かどうかはわかりません。

タイプ'{0}'はテーブルとしてマップされていません。

  1. 上から問題を「修正」した後。私は私のでこの新しいものを手に入れましたforeach (ZUser usr in query)

メンバー'{0}。{1}'には、SQLへの変換がサポートされていません。

これを修正または回避する方法がわかりません。

4

1 に答える 1

1

驚くべきことに、このlinqの機能!

本当に面白い!

msdnで検索し、アプリケーションでテストした後、

すべての単一クラスメンバーのColumn属性を見逃している可能性があります。

[Column(CanBeNull = false, DbType = "int")]

そして多分あなたはユーザー宣言の上にテーブル属性のコメントを外さなければなりません

この助けを願っています!

于 2013-03-08T21:16:32.237 に答える