问题标签 [dataobjects.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1645 浏览

c# - DataObjects.NET:一个好的(完美的、有文档的、支持的)ORM?

我正在寻找 ORM 框架,出现在 NHibernate、Genome、L2S、Entity Framework 和现在的 DataObjects.NET 中。到目前为止,我阅读了文档,它看起来很可靠,但是你有没有尝试过这个 ORM?

DO.NET 的任何问题/错误都会被批准:)

0 投票
2 回答
415 浏览

c# - DataObjects.NET 可以支持 SQL 标识列吗?

虽然 DataObjects.NET 有很多值得喜欢的地方,但我发现帮助资源很精简,并且找不到将 DataObjects.NET 与 RDBMS 生成的主键一起使用的唯一示例。似乎 D4O 不会对 SQL Server 执行插入操作,除非它控制了密钥。

有没有人在野外解决这个问题?

0 投票
1 回答
654 浏览

design-patterns - 数据访问层设计模式

我需要构建一个数据访问层,并且我正在寻找正确的设计模式。

我需要的是:

  1. 对象映射:它不应该太复杂且不通用。
  2. 我有很多查找表,我需要一种加载它们的好方法。我不关心启动时间(程序启动时),我关心的是最小化与数据库的连接数量,另一方面不杀死虚拟内存。
  3. 关系:我有很多相互关联的连接对象,我需要一种通用的方法来加载尽可能多的关系。

数字 2(上)对我来说是最关键的。有什么建议么?

谢谢

0 投票
4 回答
113 浏览

c# - 将数据结构保存在几页上?

我正在使用 .NET 3.5,当您在不同页面之间传输时,我需要一些有关如何保存数据对象的帮助。

这是我的设置:

我有一个四步注册,其中每个步骤都包含自己的网页。我希望能够在页面之间的内存中保存一个对象,而无需将其保存到数据库中。每个页面都会向这个对象添加一些东西。

只是为了方便起见,假设我有一个对象

当我到达最后一页并收集了所有数据时,我会将其提交到我的数据库中。在 c# 中执行此操作的最佳方法是什么?任何不错的链接或示例都会很棒!

0 投票
1 回答
78 浏览

select - 为 dataobjects.net 中的每个页面选择记录

我在数据库中有很多记录,并且我有一个控件来分页这些记录。如何为每个页面选择记录?例如,我需要从第 51 条记录到第 100 条记录中选择记录。而且我不能使用 LINQ 表达式。我正在使用数据对象 3.9 。所以我开始

0 投票
1 回答
215 浏览

entity-framework - 在 DataObjects.Net 中包含外键属性

我最近担心实体框架存在的问题,我们可能需要寻找替代品。根据 ORMBattle 的说法,最好的候选者是 DataObjects.Net,我最初的调查结果非常有希望,除了我们在结构中需要的一个特性:

考虑两个类:订单和客户,在“订单”类中,我有一个“客户”导航属性(可能还有客户类中的“订单”导航属性)。我还需要 Order 类中的属性 CustomerID。这在低级 EF4 中是完全可能的。

我怎样才能实现这个目标?

0 投票
2 回答
448 浏览

c# - 如何在不编译项目的情况下获取类的元数据

在我们的项目中,我们使用了大量的 T4 代码生成。我们使用一个称为 X-Tensive 的 DataObjects.Net 的 ORM。我们有一点鸡蛋问题。在使用程序集的元数据生成代码之前,我们需要编译 ORM 的类。然后当代码生成时,我们可以再次编译模型,但现在结合生成的代码(部分类)。没有生成的代码,模型类中的大部分自定义代码都无法编译。

我们如何解决它是在 VS2013 中有一个单独的配置,称为“模型”。在此配置中,存在“条件编译符号”调用“JUSTMODEL”。在没有生成代码的情况下无法编译的所有代码都放置在 #if !JUSTMODEL #endif 编译器指令之间,这会导致此代码不会针对“模型”配置进行编译。

这有点乏味。我们创建了一个可扩展性的小应用程序来自动化这个过程,但是运行这些过程变得越来越耗时。

现在我想知道是否可以在不通过某种可扩展性 API 构建程序集的情况下获取模型程序集的元数据。我在 Visual Studio 中看到很多工具可以理解编辑器中加载的类并给我一些反馈(如智能感知)。

0 投票
1 回答
276 浏览

c# - DataObjects.NET 4.0 保存某些数据

我正在使用 DataObjects.NET 在 C# 中创建一个 WinForms 应用程序。我有点卡在某个点上。我在数据库中有一些数据。对象如下:

现在我需要从 CSV 文件中导入对象并将它们与数据库中可用的数据进行比较的功能。由于我的构造函数采用 1 个参数Xtensive.Orm.Session,因此我按以下方式导入对象并返回包含所有导入对象的列表。

获得导入列表后,我对数据进行了一些检查并分析数据以填充 2 个新列表,其中包含已更改的对象和新对象。现在我的问题是,如果用户单击保存按钮,则必须在数据库中更新或添加新对象和更改的对象。我尝试使用Session.SaveChanges();,但由于我的所有对象都继承自Entity,因此会话希望保存所有导致重复行出现 SQL 错误的对象。我不知道如何解决这个问题。

我在万维网上寻找解决方案,但找不到一个很好解释的解决方案。

我是 DataObjects 的新手,我知道它是一个旧的 ORM 框架,但我必须使用它。我希望你们中的一些人可以帮助我解决这个烦人的问题,因为他们的支持已经死了。

0 投票
1 回答
115 浏览

c# - 如何对始终由生成的代码初始化的引用类型的属性进行空注释?

我想知道如何告诉编译器某个属性永远不会为空,尽管编译器没有看到任何初始化代码。当前编译器发出警告:

不可为空的属性未初始化。考虑将属性声明为可为空

我最常见的情况是由 ORM 框架初始化的实体。它们要么在创建实体实例时由 ORM 自动实例化,要么后处理器分析程序集并注入初始化代码。因此,当一个新实例由一个简单new MyEntity()的引用类型的某些属性创建时已经是非空的,尽管编译器没有看到这一点。

案例 1:与其他实体的关系

[Association]属性由 ORM 以特定方式处理,确保EntitySet<T>类型的属性自动初始化为这些集合的实际实例。

案例2:嵌套实例(组合)

属性类型的父类型触发 ORM 的特定处理,确保实例是自动创建的:

当前可用的注释:

一种可能性是用属性注释整个[NotNull]属性。但是,在这种情况下,警告不会立即消失,并且有必要使用可为空的引用类型来删除属性:

这是一个部分可接受的解决方案,因为声明站点警告已被删除,并且在取消引用该Relation属性时不会在使用站点引起警告:

但是,?同时使用 a[NotNull]似乎违反直觉。

另一种选择是应用于[NotNull]getter 的返回。但是,除非使用可为空的引用类型,否则警告不会消失:

这减轻了声明站点警告,但使用站点警告仍然存在:

问题是,是否有一种方法可以在使用可为空引用类型的情况下对此类属性进行空注释,或者这些场景是否不受现有属性集的支持,并且应该在 dotnet github 存储库中提出票证?