Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ADO.NET实体框架中使用xml列_.net_Entity Framework_Ado.net - Fatal编程技术网

在ADO.NET实体框架中使用xml列

在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列映射到字符串数据类型。虽然这是预期的行为,但我

在.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列映射到字符串数据类型。虽然这是预期的行为,但我想提供自己的自定义类型

我试着创建一个类

public class Address : IXmlSerializable { ... }
并尝试将地址列的
字符串
数据类型替换为我自己的
地址
类型,但我找不到让实体框架理解我的自定义类型的方法

我读过,但是它说值本身不能为null,在我的例子中它可以为null


是否可能以及如何实现?

必须对映射属性使用
字符串

但是,您可以在分部类中添加自定义(附加)属性,将字符串转换为自定义类型。所以你可以做一些类似的事情:

public partial class Employee
{
    public Address EmployeeAddress 
    {
        get
        {
            return new Address(this.MappedAddressProperty);
        }
    }
}

但是,您不能在LINQ to实体中使用这些自定义属性。

我使用了您的想法,并从中进行了扩展。非常感谢。