如何同时为一对多和多对多设置持久化对象? [开发速递]

How to set up persistent object for one-to-many and many-to-many at same time? [DevExpress]

我对下一个方案有疑问,我附加了 it.I 想从我的数据库中查询只有一个带有“Manufacturer”的对象 class。喜欢:

var res = new XPQuery<Manufacturer>(session);

然后在LINQ中查询所有与我的病情相关的信息。 我尝试了 XPLiteObject, XPObject, Association attribute, NoForeignKey Attribute, XPOCollection 和很多东西,但没有任何帮助。

我尝试了很多方法,每次我都有新的异常,比如: SelectMany - 不支持方法。 无法在 table 中设置外键。 重复的主键。

我的问题是:如何描述 classes 从 db 中正常提取数据?

更新: 我现在的解决方案是:在每个对象上使用 .ToList() 然后使用 linq-query 连接数据并进行所需的查询。

var manufacturer = new XPQuery<Manufacturer>(session).ToList();
var cars = new XPQuery<Car>(session).ToList();
var countries = new XPQuery<Country>(session).ToList();

var result = from m in manufacturer ....

所以,我找到了解决问题的方法。 我下载了可以为 visual studio 添加模板的 DevExpress。 然后我 select 将新项目添加到名为“DevExpress ORM DataModel Wizard”的项目中。 这个向导can create persistent objects for existing database。 之后我可以使用下一个语法查询数据库:

var manufacturer = new XPQuery<Manufacturer>(session).Select(x => x....)...;

但是如果你想在你的 LINQ 查询中使用 .SelectMany() 你应该使用 .ToList() 然后使用 .SelectMany()。当我尝试加入或执行其他一些与 LINQ 相关的操作时,我遇到了很多问题。好吧,如果你有一些错误,首先在 .Select() 之后尝试 .ToList() 然后执行你的操作。