对于模型文件,如下所示:
public class WebApiEntity
{
public string id { get; set; }
public Collection<CData> data { get; set; }
}
public class CData
{
public string CType { get; set; }
public string CId { get; set; }
}
当我使用服务引用生成ODATA客户端时,它看起来像:
<EntityType Name="WebApiEntity">
<Key>
<PropertyRef Name="id" />
</Key>
<Property Name="id" Type="Edm.String" Nullable="false" />
<Property Name="data" Type="Collection(NamespaceValue.CData)" Nullable="false" />
</EntityType>
将nullable属性设置为FALSE。如何将其设置为TRUE我需要做什么。 似乎Nullable&lt;&gt;不能在这里使用。感谢这里的任何帮助。
答案 0 :(得分:0)
请试试这个:
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
var collectionProperty = builder.EntityType<WebApiEntity>().CollectionProperty<CData>(c=>c.data);
collectionProperty.IsOptional();
答案 1 :(得分:0)
可能对某人有用。 解决方案之一是使用CData作为结构类型(但会受到一些限制)。结构是值类型。
public class WebApiEntity
{
public Collection<CData> data { get; set; }
public Collection<(String CType, String CId)> data_tuple { get; set; }
}
public struct CData
{
public string CType { get; set; }
public string CId { get; set; }
}
OData元数据:
<Property Name="data" Type="Collection(Diagnostics.Data.Diagnostics.CData)"/>
<Property Name="data_tuple" Type="Collection(System.ValueTuple_2OfString_String)"/>