如何在亚音速中创建一对一的关系?例如,我有我的桌子叫Readings,每个Reading只有一本书,但是Subsonic返回一本书的IQueryable
。我希望它只返回一本书。谢谢。与亚音速的一对一关系
3
A
回答
1
我假设你使用ActiveRecord模板来生成你的代码。
里面ActiveRecord.tt,你会看到一个部分,看起来像这样:
public IQueryable<<#=fk.OtherClass #>> <#=propName #>
{
get
{
var repo=<#=Namespace #>.<#=fk.OtherClass#>.GetRepo();
return from items in repo.GetAll()
where items.<#=CleanUp(fk.OtherColumn)#> == _<#=CleanUp(fk.ThisColumn)#>
select items;
}
}
这对于为表上的每个外键生成的代码模板。你需要修改这个部分,或者在这段代码中加入一些逻辑,并为你的一对一密钥生成不同的东西。
希望能指引您朝着正确的方向发展。
1
我所做的就是创建一个部分类,像这样:
public partial class Reading
{
private Book _book;
public Book Book
{
get
{
if (_book == null)
_book = this.Books.SingleOrDefault();
{
return _book;
}
}
set
{
_book = value;
}
}
}
然后你就可以直接访问阅读的子对象的书,而不是通过IQueryable的对象。
如果有人知道更好的方法来做到这一点,请让我知道,因为这是我经过很多努力后才能想出的。
编辑:忘了提,这部分类必须是在相同的命名空间中产生亚音速机型
相关问题
- 1. 亚音速一对多的关系的子对象
- 2. 亚音速3 SimpleRepository一个一对多
- 3. 亚音速与webservice
- 4. 使用亚音速与vb.net
- 5. 亚音速
- 6. 亚音速3
- 7. 亚音速3.0一般问题
- 8. 关于亚音速3(ActiveRecord的)查询
- 9. 亚音速3.0.0.2 - SimpleRepository相关的表
- 10. 亚音速3和表之间的关系
- 11. sqlalchemy:与声明的一对一关系
- 12. 与实体 - 一一对应的关系
- 13. ormlite与一对一的关系
- 14. 对亚音速查询的SQL语句
- 15. 问题关于亚音速2.2版
- 16. 亚音速:MySqlDataReader将关闭连接
- 17. 亚音速收集
- 18. 亚音速2.1:SqlQuery.ExecuteJoinedDataSet()
- 19. 亚音速.Filter()在
- 20. 亚音速版本
- 21. SQLite和亚音速
- 22. 亚音速3 - SimpleRepository
- 23. 问题与拥有一对一的关系,父/子关系
- 24. 与休眠一对一关系
- 25. 一对一关系
- 26. 一对一关系
- 27. 自动增量SQLite与亚音速3
- 28. 亚音速3.0与winform应用程序
- 29. 使用排序依据与亚音速
- 30. 有谁亚音速3使用亚音速在.net