【发布时间】:2015-10-28 22:27:13
【问题描述】:
我怎样才能根据下面的例子合并两个对象类和通用列表?
public class BookShop
{
public Author Author { get; set; }
public List<Book> Book { get; set; }
}
public class Author
{
public string ID { get; set; }
public string Name { get; set; }
}
public class Book
{
public int ID { get; set; }
public string Name { get; set; }
}
public class BookDetail
{
public int ID { get; set; }
public string Comment { get; set; }
public int BookID { get; set; }
}
List<BookShop> shop = db.GetBook();
List<BookDetail> bookDetail = db.GetBookDetail();
var merge = shop.Select(m => m.Book.Join(bookDetail, ok => ok.ID, ik => ik.BookID, (b, d) => new
{
b.ID,
b.Name,
d.Comment
}));
到目前为止一切正常,但我需要作者详细信息(Author.Name)
【问题讨论】:
-
为什么
Author不是Book的属性? -
我建议重新组织班级结构
-
@YuvalItzchakov,我想将作者实体声明为分开。你是不是走错路了?
-
@GoranZooferic 当我想到一个书籍实体时,这本书的作者绝对应该是其中的一部分。您还看到,现在您实际上需要它作为结果对象的一部分。
-
我认为您需要一个多对多表来组织它。请记住,一本书可以由许多作者写,一个作者也可以写很多书。