Linq抛出异常

时间:2013-02-20 16:57:46

标签: linq entity-framework exception ef-model-first

我创建了一个项目,我使用EF和LINQ以及Model first。所以,基于我的edmx,我创建了我的数据库以及我的类。

所以我遇到了一些问题。我创建了一个Click来测试我的代码是否正常工作。

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类( Controller )中,我做了以下代码:

[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. 如果我不让我的Model类中的[Table](我添加了它),我收到了这个错误。 我不确定这是否是纠正它的正确方法。
  2.   

    类型“{0}”未映射为表格。

    1. 从上面“修复”问题之后。我在foreach (ZUser usr in query)
    2. 中找到了这个新的
        

      成员“{0}。{1}”不支持对SQL的翻译。

      我不知道如何修复或创建一个解决方法。

1 个答案:

答案 0 :(得分:1)

很棒,这个linq的功能!

真有意思!

在msdn上进行一些搜索并在应用程序中测试后,

也许你错过了所有单个班级成员的属性:

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

也许您必须取消注释用户声明

之上的属性

希望这有帮助!