Пытаться
var user = from u in dc.User
where u.UserName == usn
select u;
Я пытаюсь начать использовать LINQ и, в частности, LINQ to SQL, но у меня возникают некоторые трудности
Я пробовал это с помощью SqlMetal и теперь использую конструктор таблицы базы данных в Visual Studio, и я продолжаю получать аналогичные ошибки, как в этом коде, используя контекст данных, который я создал с дизайном макета базы данных в VS2008.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
string usn = UserNameBox.Text;
string pss = PassBox.Text;
if (usn == "" || pss == "")
return;
DataClassesDataContext dc = new DataClassesDataContext();
var user = from u in User
where u.UserName == usn
select u;
}
}
}
Я получаю сообщение об ошибке: «Не удалось найти реализацию шаблона запроса для типа источника« System.Security.Principal.IPrincipal ». А также: «Где» не найдено.
У меня было что-то подобное, когда я пытался использовать результаты SqlMetal. Я удалил этот источник и начал использовать его. Мне, должно быть, что-то не хватает, но я не могу понять, что. Должны ли таблицы выполнять то, что мне нужно, поскольку я использую LINQ to SQL, или мне нужно сделать что-то дополнительное, чтобы это произошло?
Разве вы не должны использовать dc, который вы создаете где-то в своем запросе?
Что-то вроде:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
string usn = UserNameBox.Text;
string pss = PassBox.Text;
if (usn == "" || pss == "")
return;
DataClassesDataContext dc = new DataClassesDataContext();
var user = from u in dc.User where u.UserName == usn select u;
}
}