以下是从BLToolkit http://bltoolkit.net/(S(ibvuiu3itvirtq550l4r0n55))/Doc.LinqAssociations.ashx中获取的列表关联的用法示例
[TableName("Categories")]
public class Category
{
[PrimaryKey, Identity] public int CategoryID;
[NotNull] public string CategoryName;
public string Description;
public Binary Picture;
[Association(ThisKey="CategoryID", OtherKey="CategoryID")]
public List<Product> Products;
}和
[TableName("Products")]
public abstract class Product
{
[PrimaryKey, Identity] public int ProductID;
[NotNull] public string ProductName;
public int? SupplierID;
public int? CategoryID;
public string QuantityPerUnit;
public decimal? UnitPrice;
public short? UnitsInStock;
public short? UnitsOnOrder;
public short? ReorderLevel;
[MapField(IsInheritanceDiscriminator=true)] public bool Discontinued;
[Association(ThisKey="ProductID", OtherKey="ProductID")]
public List<OrderDetail> OrderDetails;
[Association(ThisKey="CategoryID", OtherKey="CategoryID", CanBeNull=false)]
public Category Category;
[Association(ThisKey="SupplierID", OtherKey="SupplierID", CanBeNull=false)]
public Supplier Supplier;
}当我尝试的时候
using (var db = new NorthwindDB())
{
var query =
from p in db.Product
select new
{
p.Category.CategoryName,
p.ProductName
};
foreach (var item in query)
{
Console.WriteLine(item);
}
}返回产品CategoryName
但是当我尝试这种方式时(比如linq2Sql)
var db1 = new NorthwindDB();
db1.Product.First().Category.CategoryName;类别返回null?
发布于 2011-08-25 21:35:41
尝尝这个
var db1 = new NorthwindDB();
db1.Product.Select(prod => prod.Category.CategoryName).First();我想这也是一样的。无论如何,关于"like linq2Sql",L2S有延迟加载,而Blt没有
https://stackoverflow.com/questions/7098394
复制相似问题