在ADO.NET实体框架中使用xml列
在.NET3.5sp1中 我在Sql Server中有一个表,其定义如下:在ADO.NET实体框架中使用xml列,.net,entity-framework,ado.net,.net,Entity Framework,Ado.net,在.NET3.5sp1中 我在Sql Server中有一个表,其定义如下: CREATE TABLE Employee( EmployeeId [int] IDENTITY(1,1) NOT NULL, UserName varchar(128) NOT NULL, [Name] nvarchar(200) NOT NULL, Address xml NULL, ...) 我正在将此表映射到ADO.NET实体框架。我的问题是xml列映射到字符串数据类型。虽然这是预期的行为,但我
CREATE TABLE Employee(
EmployeeId [int] IDENTITY(1,1) NOT NULL,
UserName varchar(128) NOT NULL,
[Name] nvarchar(200) NOT NULL,
Address xml NULL,
...)
我正在将此表映射到ADO.NET实体框架。我的问题是xml列映射到字符串数据类型。虽然这是预期的行为,但我想提供自己的自定义类型
我试着创建一个类
public class Address : IXmlSerializable { ... }
并尝试将地址列的字符串
数据类型替换为我自己的地址
类型,但我找不到让实体框架理解我的自定义类型的方法
我读过,但是它说值本身不能为null,在我的例子中它可以为null
是否可能以及如何实现?必须对映射属性使用
字符串
但是,您可以在分部类中添加自定义(附加)属性,将字符串转换为自定义类型。所以你可以做一些类似的事情:
public partial class Employee
{
public Address EmployeeAddress
{
get
{
return new Address(this.MappedAddressProperty);
}
}
}
但是,您不能在LINQ to实体中使用这些自定义属性。我使用了您的想法,并从中进行了扩展。非常感谢。