rip*_*234 5 .net c# nhibernate orm fluent-nhibernate
(请参阅LINQ-to-SQL的相关问题)
我想使用NHibernate 将具有URI
成员的类映射到string
列.我究竟该如何实现这一目标?
我不认为给出相关问题的解决方案在这里工作 - 我不能声明私有字段并映射它,因为映射需要引用该字段.
除非你需要做一些特殊的事情,UriType
NHibernate提供的工作(我不知道它引入了什么版本 - 我使用的是3.1.4000).无需编写自定义用户类型.
您可以UriType
在ClassMap<>
:
public class ImportedWebImageMap : ClassMap<ImportedWebImage>
{
public ImportedWebImageMap()
{
Id(x => x.Id);
Map(x => x.SourceUri).CustomType<UriType>();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用属性约定来映射Uri
要使用的所有属性UriType
:
public class UriConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
if (typeof(Uri).IsAssignableFrom(instance.Property.PropertyType))
instance.CustomType<UriType>();
}
}
Run Code Online (Sandbox Code Playgroud)
如果要将Uri
数据库存储为数据库varchar
而不是默认值nvarchar
,则可以创建从中派生的自定义类型UriType
并指定AnsiString
SQL类型:
public class UriAnsiStringType : UriType
{
public UriAnsiStringType()
: base(new AnsiStringSqlType())
{ }
public override string Name
{
get { return "UriAnsiStringType"; }
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
981 次 |
最近记录: |