1

我创建了一个项目,我将 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. 如果我不让[Table]我的模型类(我添加了那个)我得到了这个错误。我不确定这是否是纠正它的正确方法。

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

  1. 从上面“解决”问题后。我在我的foreach (ZUser usr in query).

成员“{0}.{1}”不支持 SQL 转换。

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

4

1 回答 1

1

太神奇了,linq 的这个功能!

真的很有趣!

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

也许您错过了所有单个类成员的Column属性:

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

也许您必须取消注释User 声明顶部的Table属性

希望这有帮助!

于 2013-03-08T21:16:32.237 回答