我有兩個選擇是完全相同的,但其中一個(getBranchsForUser
)會引發錯誤。爲什麼LINQ to Entities在這個select語句中拋出錯誤?
public User GetUserByUsername(string username)
{
var db = new AdventureWorksEntities();
User user = (from u in db.tabUser
where u.strUsername.Equals(username, StringComparison.CurrentCultureIgnoreCase)
select new User
{
strUsername = u.strUsername,
intID = u.intUserID,
}
).FirstOrDefault();
user.branchsList = getBranchsForUser(user.intID);
return user;
}
public List<Branch> getBranchsForUser(int userID)
{
var db = new AdventureWorksEntities();
List<Branch> branchsList = (from u in db.tabBranchs
where u.intUserID.Equals(userID)
select new Branch
{
dblGoal = u.dblGoal,
intNbOfGradeForAYear = u.IntNBOfGradeForAYear,
strName = u.strName
}
).ToList();
return branchsList;
}
我得到getBranchsForUser方法以下錯誤:
[System.NotSupportedException] {「指定的類型成員 'intUserID' 不是在LINQ支撐到實體只有初始化器,實體成員和實體導航屬性都支持。「}
System.NotSupportedException
爲什麼我沒有拿到它也爲我GetUserByUsername
方法? (我做同樣的事情)
編輯 表定義:
CREATE TABLE [dbo].[tabBranchs] (
[intBranchID] INT NOT NULL,
[intUserID] INT NOT NULL,
[strName] TEXT NOT NULL,
[dblGoal] FLOAT (53) NULL,
[IntNBOfGradeForAYear] INT NOT NULL,
CONSTRAINT [PK_tabBranchs] PRIMARY KEY CLUSTERED ([intBranchID] ASC),
CONSTRAINT [FK_tabBranchs_ToTable] FOREIGN KEY ([intUserID]) REFERENCES [dbo].[tabUser] ([intUserID])
);
CREATE TABLE [dbo].[tabUser] (
[intUserID] INT NOT NULL,
[strUsername] VARCHAR (MAX) NOT NULL,
[strPassword] VARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_tabUser] PRIMARY KEY CLUSTERED ([intUserID] ASC)
);
EDIT 2
public class Branch {
public string strName { get; set; }
public List<Mark> markList { get; set; }
public double dblAverage { get; set; }
public double? dblGoal { get; set; }
public bool bHasGoal { get; set; }
public int intNbOfGradeForAYear { get; set; }
public Branch(){}
public Branch(string branchName, double goal, int nbOfNotes)
{
// TODO: Complete member initialization
this.strName = branchName;
this.dblGoal = goal;
bHasGoal = true;
this.intNbOfGradeForAYear = nbOfNotes;
}
屬性'intUserID'是否映射到數據庫se列? – Jehof
你如何確定'intUserId'的值?這是一個計算列還是直接來自您的數據庫? – Szeki
它直接來自我的數據庫 – joohn