首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLToolkit关联链接

BLToolkit关联链接
EN

Stack Overflow用户
提问于 2011-08-18 03:34:50
回答 1查看 1.4K关注 0票数 0

以下是从BLToolkit http://bltoolkit.net/(S(ibvuiu3itvirtq550l4r0n55))/Doc.LinqAssociations.ashx中获取的列表关联的用法示例

代码语言:javascript
复制
[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;
    }

代码语言:javascript
复制
[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;
        }

当我尝试的时候

代码语言:javascript
复制
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)

代码语言:javascript
复制
  var db1 = new NorthwindDB();
  db1.Product.First().Category.CategoryName;

类别返回null?

EN

回答 1

Stack Overflow用户

发布于 2011-08-25 21:35:41

尝尝这个

代码语言:javascript
复制
var db1 = new NorthwindDB(); 
db1.Product.Select(prod => prod.Category.CategoryName).First();

我想这也是一样的。无论如何,关于"like linq2Sql",L2S有延迟加载,而Blt没有

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7098394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档