2013-01-22 88 views
1

可能重複:
LINQ to SQL: Return anonymous type?LINQ加入返回類型

我使用一個LINQ加入列表<>什麼返回類型?我正在加入下面的多個表格,出現錯誤'Cannot implicitly convert type System.Collections.Generic.List<AnonymousType#1> to System.Collections.Generic.List<CargoTanksDAL.aspnet_Users>

public List<> GetAspnetUsersWithMembershipAndCompany() 
    { 

     using (DevCargoEntities db = new DevCargoEntities()) 
     { 
      var users = from u in db.aspnet_Users 
         join mem in db.aspnet_Membership on u.UserId equals mem.UserId 
         join cl in db.CT_CompanyLogIn on u.UserName equals cl.UserLogIn 
         join companies in db.CT_Companies on cl.CompanyID equals companies.CompanyID 
         select new 
         { 
          u.UserId, 
          u.UserName, 
          mem.Email, 
          mem.IsLockedOut, 
          mem.IsApproved, 
          mem.CreateDate, 
          companies.CompanyName 
         }; 

      return users.ToList(); 
     } 
    } 
+1

見頂部相關的問題到這個問題 - http://stackoverflow.com/questions/534690/linq-to-sql-return-anonymous-type?rq=1 –

+0

你想要什麼 回來?你應該構造你的Linq查詢來返回你想要的方法返回的內容。如果你已經有了某種用戶類,你可以使用它。 'select new User(){UserId = u.UserId,UserName = u.UserName ...}' – squillman

+0

您正在查詢中創建一個匿名類型。如果您爲查詢定義自己的類型,則可以返回這些類型的列表。 –

回答

0

我會作出一個新的類..此用戶..

public class SomeKindOfUser 
{ 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public string Email { get; set; } 
    public bool IsLockedOut { get; set; } 
    public bool IsApproved { get; set; } 
    public DateTime CreateDate { get; set; } 
    public string CompanyName { get; set; } 
} 

現在,您可以選擇使用

public List<SomeKindOfUser> GetAspnetUsersWithMembershipAndCompany() 

然後:

select new SomeKindOfUser 
         { 
          UserId = u.UserId, 
          UserName = u.UserName, 
          Email = mem.Email, 
          IsLockedOut = mem.IsLockedOut, 
          IsApproved = mem.IsApproved, 
          CreateDate = mem.CreateDate, 
          CompanyName = companies.CompanyName 
         }; 
+0

你會把新課程放在哪裏?數據訪問層或業務邏輯層? – user1220099

+0

@ user1220099如前所述「取決於您的功能服務的確切目的」。但我也將它添加到業務邏輯層。 –

4

無。這裏的連接並不重要,select會選擇,並且您選擇一個匿名類型。您無法返回匿名類型。更好地創建一個包含要返回的屬性和實例類型的新類。

理論上你可以返回動態或對象,但那是你真的不想走的路徑。相信我。

+0

所以我會把這個新類放在我的數據訪問層或業務邏輯層中? – user1220099

+0

取決於你的功能服務的確切目的。我會將它添加到業務邏輯層。 – user1908061