Fluent NHibernate,引用硬编码的 C# 方法

本文关键字:方法 编码 NHibernate 引用 Fluent | 更新日期: 2023-09-27 17:56:28

我有一些功能需要"可选"作为数据库中某些对象的选项,但是每个方法背后的实际代码太复杂了,无法序列化到数据库中。它们也不能是 SQL 存储过程。

所以基本上,我对这些函数有一个静态List<T>。是否有将这些对象与数据库中的对象相关联的标准方法?例如。。

var functions = new static List<Omega>{
 new Omega {
   Id = 1, // this would be useful to a database, but nothing really sets it.
   Name = "Some Name", // this isn't useful. It's a string literal
   Function = // this may be a Method, or a Lambda Expression, or something else.
 }
};
class Psi { 
  Guid Id { get; set; }
  Omega Omega { get; set; } // how can I keep a hard-reference here?
}

Fluent NHibernate,引用硬编码的 C# 方法

好的,我不确定我是否正确。委托是可序列化的,因此它们可以存储到数据库中,例如使用 NH。有一些限制,但序列化委托无论如何都是一个冒险的旅程:)。

如果这不是一种可行的方法,那么您可以尝试将所有"函数"实现为静态方法。类和方法名称可以存储在表列中,并通过反射调用。