我创建了一个项目,我使用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; }
}
}
[Table]
(我添加了它),我收到了这个错误。 我不确定这是否是纠正它的正确方法。 类型“{0}”未映射为表格。
foreach (ZUser usr in query)
。成员“{0}。{1}”不支持对SQL的翻译。
我不知道如何修复或创建一个解决方法。
答案 0 :(得分:1)
很棒,这个linq的功能!
真有意思!
在msdn上进行一些搜索并在应用程序中测试后,
也许你错过了所有单个班级成员的列属性:
[Column(CanBeNull = false, DbType = "int")]
也许您必须取消注释用户声明
之上的表属性希望这有帮助!