LINQ to SQL错误消息:'找不到'

时间:2008-10-15 13:05:34

标签: c# linq linq-to-sql

我正在尝试使用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,或者我是否需要做一些额外的事情才能实现这一点?

5 个答案:

答案 0 :(得分:10)

尝试将User更改为dc.User

var user = from u in dc.User
                   where u.UserName == usn
                   select u;

User是属性System.Web.UI.Page.User

答案 1 :(得分:7)

尝试

var user = from u in dc.User
                   where u.UserName == usn
                   select u;

答案 2 :(得分:2)

你不应该使用你在查询中创建的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; 
  } 
}

答案 3 :(得分:2)

您的查询表达式应该使用dc.User,而不仅仅是User:

DataClassesDataContext dc = new DataClassesDataContext();
var user = from u in dc.User
           where u.UserName == usn
           select u;

如果您打开了复数,则可能是dc.Users。

答案 4 :(得分:0)

您所指的用户(当您不使用dc.User时)是Page.User成员。这就是intellisense不抱怨的原因。