请教DbEntry使用中的问题

Dec 28, 2009 at 9:35 AM

本人初学ORM,想请教梁先生几个使用DbEntry的小问题

1.我的数据库设计索引列名不是ID,而是像RoleId之类的,在执行Role.FindAll()为什么会报错:列名Id不存在

2.当把主键设为Id时,类型为int,会报错,好像在强制转换为int64,再把数据库字段类型改为bigint时就正常了

3.还有在多对多关联查询时,关联表是不是有特定的命名规范,就是想范例中的Reader和Article的关联表必须是Article_Reader,能不能通过映射换为其他表名。

Coordinator
Dec 28, 2009 at 11:12 AM

1.DbEntry规定从DbObjectModel<T>继承的Model必须主键名是Id。
2.缺省情况下,主键是long类型,可以选择继承 DbObjectModel<T, int> 或者 DbObjectModel<T, Guid> 选择这两种主键类型。
3.是的,关联表名有规范,你可以使用自动创建表功能创建它,所以一般不需要关心,不过也可以在多对多关系定义中定义中间表名。

Dec 29, 2009 at 4:40 AM

像这些规定的默认值,像我作为一个使用者应该从哪些地方得到呢,文档和例子暂时都没有

Coordinator
Dec 29, 2009 at 8:25 AM

在文档的 Object Definition 中已经说了:

In this way, it doesn't has extra functions in it, DbObject only provide an primary key column named "Id", so it means in this object it has two columns: Name and Id, the Id column type is long, and it's aoto increments primary key of this table.

有很多东西在文档里只会有一两句话,而不可能是全篇介绍一个小特性。

除了文档和例子,单元测试也是认识一个软件比较好的入口。