【发布时间】:2015-03-08 22:05:17
【问题描述】:
我在我的 ASP.NET MVC 应用程序中使用 Fluent NHibernate 来检索数据并将其保存到 Postgresql 数据库。
假设你有一张桌子,里面有
Fields {Name, DataType, Value}
//Model
public class Table {
public virtual string Name { get; set;}
public virtual string DataType { get; set;}
public virtual string Value { get; set;}
}
所以一个典型的记录可能是:
Record { "Firstname", "Varchar", "Bob" }
Record { "DateOfBirth", "Timestamp", "2003-04-12 04:05:06" }
因此,为了让这一切正常工作,值必须是 Varchar 类型。
有没有更好的方法来做到这一点?我不喜欢 Value 是类型 string / Varchar 的想法。
我希望值类型为object 或其他类型。我已经尝试过了,但从Fluent NHibernate 得到了一个Exception。
您将如何从 DDD 的角度解决这个问题?
【问题讨论】:
-
我不了解 postgresql,但我过去曾在生产环境中的 MSSQL 表中使用过这种确切的策略,并取得了成功。 SQL 没有给你一个“对象”数据类型来使用,所以我发现的下一个最好的事情是 varchar 列中的序列化对象,第二列存储数据类型。也许其他人会有更好的解决方案。
标签: c# postgresql nhibernate fluent-nhibernate domain-driven-design