gpt4 book ai didi

entity-framework - 在 ADO.NET 数据服务客户端上下文中公开 Entity Framework 实体字段的枚举类型属性

转载 作者:行者123 更新时间:2023-12-04 15:49:25 24 4
gpt4 key购买 nike

我有一个字段类型为 int 的实体

我想将这些字段公开为获取和接收枚举类型值以用于强类型工作的属性。

所以我为实体创建了一个新的部分类并添加了两个属性。

当我尝试创建 TestEntity 的新实例并将其添加到上下文时,
并调用保存更改我得到以下异常:

处理此请求时出错。
在 System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse()
在 System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest()
在 System.Data.Services.Client.DataServiceContext.SaveChanges(SaveChangesOptions 选项)
在 System.Data.Services.Client.DataServiceContext.SaveChanges()


内部异常(exception)是:

System.InvalidOperationException: 类型“enum1”没有可设置的属性。
在 System.Data.Services.Client.ClientType..ctor(Type type, String typeName, Boolean skipSettableCheck)
在 System.Data.Services.Client.ClientType.Create(Type type, Boolean expectModelType)
在 System.Data.Services.Client.DataServiceContext.WriteContentProperties(XmlWriter 编写器,ClientType 类型,对象资源)
在 System.Data.Services.Client.DataServiceContext.CreateRequestData(ResourceBox box, Boolean newline)
在 System.Data.Services.Client.DataServiceContext.SaveAsyncResult.CreateChangeData(Int32 索引, bool 换行符)
在 System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange(Boolean replaceOnUpdate)


所以我认为它试图将枚举属性反射(reflect)为类属性。
当它试图反射(reflect)这些属性时,我如何让上下文忽略这些属性。

我正在使用 VS 2008 团队套件 sp1、SQL Server 2008、.Net 3.5 Sp1。

帮助。

部分类代码:

public partial class TestEntity
{
public enum1 Field1
{
get
{
return (enum1)field1;
}
set
{
field1 = (Int16)value;
}
}

public enum2 Field2
{
get
{
return (enum2)field2;
}
set
{
field2 = (Int16)value;
}
}
}

最佳答案

我不认为你可以。在 ADO.Net 数据服务中,您不能在发送到服务器的代理对象上使用枚举。尝试更改您的对象以使用 int(或 short)代替。

关于entity-framework - 在 ADO.NET 数据服务客户端上下文中公开 Entity Framework 实体字段的枚举类型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com