问题标签 [castle-activerecord]

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 投票
2 回答
942 浏览

nhibernate - Castle ActiveRecord 映射问题

作为昨天讨论的结果,我决定使用 Castle ActiveRecord 来完成我的 ORM 任务。我已经根据入门指南为类添加了属性。在修复了一些明显的错误后,我收到了这样的问候:

找不到 CLASS_XXX 或其根类型 Castle.ActiveRecord.ActiveRecordBase 的配置,这通常表明配置未正确设置

错误消息中的 CLASS_XXX 是我的 c# 类名之一。有趣的是每次运行代码时 CLASS_XXX 都不一样。我打开了 log4net 并且我的 log.txt 没有捕获任何内容。所以,我猜这个错误发生在进程到达 NHibernate 之前。

以下是我的 CSharp 代码

有什么建议可以找到这个问题的真正原因吗?

0 投票
1 回答
518 浏览

c# - 使用 Castle ActiveRecord 属性进行自动类型转换

我有一个带有 DateTime 属性的 Castle ActiveRecord 类。我正在从文本文件中导入数据,并且希望能够执行以下操作:

在最后的分配中,在幕后,理想情况下会检查 的类型date_started,如果是 DateTime,则执行分配,否则执行Convert.ToDateTime(date_started)

我不能覆盖访问器[*],并且隐式运算符仅在转换为包含类或从包含类转换时才起作用。我尝试使用隐式运算符转换扩展 DateTime,但发现它已被密封。现在我是一个非常不开心的动态程序员,卡在一个静态类型的世界里。

我当然可以“手动”进行检查,但我正在实例化许多具有许多属性的不同对象,并且希望能够循环它们(使用反射),而不必对特定属性进行特殊处理。我可以定义自己的自定义访问器,但这同样需要在赋值时进行特殊处理,因为它们需要像方法 ( setX(val)) 而不是属性 ( X = val) 那样使用。

C# (2.0) 或 Castle ActiveRecord 可以为我提供任何干净的方法来在后台获取 String -> DateTime 转换吗?

0 投票
2 回答
1398 浏览

nhibernate - 为什么 NHibernate 延迟加载绑定到会话?

使用 Castle ActiveRecord,我在延迟加载时偶然发现了一个问题。

以下作品(显然)

由于我需要在特定上下文中修改会话过滤器(使用拦截器),因此我创建了一个新的 SessionScope。

最后一行“singleUser.Groups”抛出一个 LazyInitializationException:“未能延迟初始化角色集合:组,没有会话或会话已关闭”。

但是,所有其他会话操作都可以正常工作。因此,似乎“singleUser”绑定到了现在处置的 SessionScope。为什么?以及如何解决这个问题?

0 投票
4 回答
3411 浏览

c# - 如何在 Castle ActiveRecord 中获取对 SqlConnection(或连接字符串)的引用?

如何在配置中获取对当前 SqlConnection 或 Sqlconnection 的引用?

我发现http://svn.castleproject.org:8080/svn/castle/trunk/ActiveRecord/Castle.ActiveRecord.Tests/DifferentDatabaseScopeTestCase.cs

和代码

但我不明白在哪里可以找到“GetConfigSource”实现?这个标准的城堡助手功能与否?

我使用这些命名空间

0 投票
1 回答
154 浏览

c# - 城堡 - ActiveRecord - 继承

我试图避免在所有 ActiveRecord 类中创建相同的属性,所以我编写了这个:

有一个基类,我有我的共同属性:Id, Version, LastUpdate, 等等...

然后我的“子”类将拥有自己的属性,并且应该从我的IdentityBase.

现在我创建一个对象用户:

我可以打电话user.Save()但我不能打电话user.FindAll()和许多其他公共方法....

我该如何解决这个问题?

0 投票
3 回答
634 浏览

c# - 部分延迟加载

我有一个对象用户,它可以有多个帖子。

例子:

在帖子上使用延迟加载加载用户IList<User> users = User.LoadAll()

然后我只想读取“一半”的users[2].Posts[3](仅从该帖子对象中检索我想要的属性而不是所有属性),这可能吗?

(注意,我不想使用视图)。

编辑:有人可以给我一个简单的示例代码吗?我试图找到一个没有成功。谢谢

0 投票
2 回答
2361 浏览

c# - C# Castle ActiveRecord:如何优雅地 (XML) 序列化 ActiveRecord 对象?

我很难找到有关如何优雅地序列化 ActiveRecord 对象的信息。

我们希望使用 XML 作为格式,因为我们需要以这样一种方式输出我们的对象,以便另一个程序能够有效地解析它们。

XML-Serialization 通常实现起来非常简单直接,但是在尝试序列化从 ActiveRecord 数据库返回的对象时就会出现问题。数据库返回对象的代理类,其类型无法通过[XmlInclude]属性明确预测。

例如:

在此处进行序列化时,我们将收到一条消息:
“类型 FooProxy2e2de24df9be42909d13a67fdb00b981 不是预期的。使用 XmlInclude 或 SoapInclude 属性指定静态未知的类型。”

其中代理类型将完全不可预测(至少据我所知)。

作为一个临时解决方案,我的团队已将每个 AR 对象的属性存根到接口中。然后,我们为每个对象实现了“容器”对象,它们本质上是对象的 Xml-Serializable 非 AR 版本。考虑到我们目前有 18 个不同的 AR 对象被序列化,这是我们解决方案中的 36 个附加文件!有些东西(一切)告诉我这是一个糟糕的解决方案,但我一直无法找到更好的方法。

我们也尝试使用 Soap Formatter,但由于 ActiveRecrodLinqBase<> 没有“标记为可序列化”,这也是一个死胡同。

0 投票
1 回答
621 浏览

sql-server - Castle Active Record 无法执行查询,因为表名等于关键字

我正在尝试从 Castle Active 记录中进行“入门”,现在我遇到了这个问题,无法执行查询异常

select count(*) as col_0_0_ from User user0_ where 1=1 //这是 SQL Server 2008

问题:我可以以某种方式让城堡将表名放入 [] 中,如 [User] 吗?

0 投票
1 回答
1415 浏览

castle-activerecord - 如何在 Castle ActiveRecord 中使用复合键

我读到,为了使用 Castle ActiveRecord 映射一个类,该类必须有一个主键(代理或复合)。

现在,假设我有一个只想用于阅读的表,并且该表没有代理键或自然复合键。

有没有办法仍然可以生成一些手动 Guid(或其他 id)来使映射类成为可能?

同样,该表仅用于阅读目的。

0 投票
2 回答
880 浏览

database - ActiveRecord 查询(城堡、性能)

我有 3 张桌子:

  • 零件::Name内部名称,Active:布尔
  • 语言:语言列表(英语、法语、德语……)
  • PartsTranslations :RealName和其他 2 个表的 ID。

我想获得一份零件列表,告诉我内部nameactive状态缺少多少翻译(总语言减去翻译)

我做了这个 SQL 查询,它给了我我需要的东西(我不知道这是否是更好的方法,但它正在工作):

1º 问题- 如何使用 Castle ActiveRecord 进行此查询?

2º question-最终查询的性能如何(昂贵的)?

谢谢