请教一些问题

Sep 4, 2011 at 12:52 PM
DbEntry能使用纯代码方式配置吗?

自定义Pk,不继承自DbObjectModel,就没法使用User.Table的linq查询形式,如何使用投影查询?
 
DbEntry对自关联表支持吗?
Coordinator
Sep 5, 2011 at 1:56 AM

1.不支持

2.User.Table是个shortcut,你可以参照Table的源代码实现。返回部分字段可以用select new。

3.支持。

Sep 5, 2011 at 2:31 AM
Edited Sep 5, 2011 at 2:32 AM

Select()函数没有其它重载形式,比如

Select(m =>new

{

 NewProperty = m.SomeProperty

});

Coordinator
Sep 5, 2011 at 3:19 AM

那要看你用的是哪个版本了。最新源代码的话,肯定是有的。

Sep 5, 2011 at 4:13 AM
Edited Sep 5, 2011 at 4:15 AM

谢谢回答,用的4.0,引用Lephone.Data命名空间,vs2010的智能提示和按F12都没有(ISelectable),能否给个自定义Pk(Guid类型,ID为属性名),自关联表的投影查询示例代码,比如:

   public class Menu : IDbObject

    {
        [DbKey(IsDbGenerate = false)]
        public Guid ID { get; set; }

        public Guid? ParentID { get; set; }


        private Menu _parentMenu;

        [BelongsTo, DbColumn("ParentID")]
        public Menu ParentMenu
        {
            get
            {
                return _parentMenu;
            }
            set
            {
                _parentMenu = value;

                ParentID = _parentMenu.ID;
            }
        }


        [HasMany]
        public IList<Menu> ChildMenus { get; set; }
    }

然后查询:

            var temp = DbEntry.From<Menu>()
                .Where(m => m.ID == movingNode.ParentID)
                .Select(m => m.ChildMenus);

Coordinator
Sep 5, 2011 at 5:48 AM

1.继承自IDbObject的类,不能使用关联字段。

2.自关联参考 DbObjectModelAsTree

3.部分字段例子: from book in Book.Table where book.Category_Id == 2 orderby book.Id select new { book.Id };

Sep 5, 2011 at 7:26 AM

            var temp = DbEntry.From<Menu>()
                .Where(m => m.ID == movingNode.ParentID)
                .Select(m => m.ChildMenus);

是否可以认为这种形式的linq不支持。

Coordinator
Sep 5, 2011 at 9:35 AM
Edited Sep 5, 2011 at 9:35 AM

4.0 Release 不支持。

最新源代码支持。

格式: .Select(m => new {m.ChildMenus});

Sep 6, 2011 at 1:49 AM

92175报错:throw new ModelException(Info.HandleType, "Can not find ObjectHandler.");

Coordinator
Sep 6, 2011 at 2:14 AM
Edited Sep 6, 2011 at 2:15 AM

http://dbentry.codeplex.com/wikipage?title=Setup&referringTitle=Documentation

Sep 6, 2011 at 7:41 AM

The model need a public/protected(DbObjectModel) argumentless constructor