我對MVC4
相當新,我正在研究一個複雜模型:一個包含類型爲IList
的屬性以及基本類型(字符串和整數)屬性的模型。 IList
類型的屬性應使用存儲過程,並且基元類型使用常規鏈接查詢。下面是模型的代碼:使用存儲過程複雜Linq表達式
public class EditUserModel
{
public IList<UserTranscript> UserTranscripts { get; set; }
public int? PersonID { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string StateCode { get; set; }
public string PostalCode { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
}
下面是UserTranscript類的代碼:
public class UserTranscript
{
public decimal Score { get; set; }
public DateTime CompletionDate { get; set; }
public string Status { get; set; }
}
這裏是我的方法:
public EditUserModel GetUserRecord(int personid)
{
//using (var db = new TceoModel.TceoContext())
//{
MyContext db = new MyContext();
var user = (from p in db.People
from pu in db.PersonUsernames.Where(f => f.PersonID == p.UPID).DefaultIfEmpty()
from pe in db.PersonEmails.Where(a => a.PersonID == p.UPID).DefaultIfEmpty()
from pa in db.Addresses.Where(c => c.PersonID == p.UPID).DefaultIfEmpty()
from lnr in db.Activities.Where(y => y.ActivityID == un.ActivityID).DefaultIfEmpty()
from tr in db.uspTranscripts(personid)
where p.UPID == personid
select new EditUserModel
{
PersonID = p.UPID,
UserName = pu.Username,
Email = pe.Email,
FirstName = p.FirstName,
MiddleName = p.MiddleName,
LastName = p.LastName,
Address = pa.Address1,
City = pa.City,
StateCode = sc.StateAbbr,
PostalCode = pa.Zip,
Phone = pp.PhoneNumber
}).AsEnumerable().Select(s => new UserTranscript() {
**How to return a list of UserTranscripts using the stored procedure db.uspTranscripts(personid)**
});
我的問題是,我怎麼能使用db.uspTranscripts(personid)
存儲過程返回第二個查詢中的成績單用戶列表?
感謝。
感謝Rob的輸入。我們還沒有進入EF6。我正在使用EF 4. –