2016-01-27 3 views
0

У меня есть код первая модель с 2 таблицей:с помощью хранимой процедуры в коде первой

public class Company 
{ 
    public int CompanyId { get; set; } 
    public string CompanyName { get; set; } 
    public string CompanyAddress { get; set; } 
    public virtual ICollection<User> User { get; set; } 
} 

public class User 
{ 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public virtual int CompanyId { get; set; } 
    public Company Company { get; set; } 
} 

Я хочу выбор компании с объектом пользователя с хранимой процедурой

SELECT a.*,u.* FROM [dbo].[Companies] as a 
     INNER JOIN dbo.Users u on u.CompanyId=a.CompanyId 

CompanyDB c = new CompanyDB(); 
var cc = c.Database.SqlQuery<Company>("dbo.Company_Select") 

Моей проблемой: cc.User является Ноль ???

ответ

0

Во-первых, у вас есть виртуальный в неправильном месте для пользователя:

public class User 
{ 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public int CompanyId { get; set; } 
    public virtual Company Company { get; set; } 
} 

Во-вторых, почему хранимой процедуры? При правильной настройке вы можете:

var companiesWithUsers = db.Companys.Include(c => c.User).ToList(); 
+0

, потому что мне нужно дополнительное поле с одним выбором. expamle: мне нужно выбрать 10 строк из Comapny и выбрать все числа строк для подкачки –

+0

Множество вариантов Linq to Entities для формирования и фильтрации. Например, db.Companys.Include (c => c.User) .Skip ((стр. -1) * PageSize) .Take (10) .ToList(); –

Смежные вопросы