如何同时为一对多和多对多设置持久对象? [DevExpress]

时间:2019-04-08 08:35:56

标签: c# linq devexpress xpo

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

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

然后在LINQ中查询与我的状况有关的所有信息。 我已经尝试过XPLiteObject, XPObject, Association attribute, NoForeignKey Attribute, XPOCollection和很多东西,但是没有什么对我有帮助。

我尝试了很多方法,每次遇到新的异常时,例如: SelectMany-不支持方法。 无法在表中设置外键。 主键重复。

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

UPD: 我现在的解决方案是:在每个对象上使用.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 ....

1 个答案:

答案 0 :(得分:0)

因此,我找到了解决我问题的方法。 我下载了DevExpress,可以为Visual Studio添加模板。 然后,选择“将新项目添加到我的项目中” 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(),然后执行操作。