Asp.net web api ODataConventionModelBuilder的惯例是什么?

Asp.net web api ODataConventionModelBuilder的惯例是什么?,asp.net-web-api,odata,Asp.net Web Api,Odata,有很多例子可以将ODataConventionModelBuilder用于简单、人为的模型,通常只是一个类 但是没有什么能真正解释这些惯例是什么;如何编写符合约定的模型。没有关于它的官方文件 那么约定是什么呢?从我到目前为止看到的情况来看,这些约定是实体框架使用的约定,而不是OData的任何新约定。如果我错了,请纠正我 更多关于代码优先的约定,见下文,但在朱莉·勒曼的书中还有很多,我还没有在网上找到详尽的列表 更新 EF建模约定系统是可插拔的,每个约定由封装行为的类表示,这些类如下所示: 但

有很多例子可以将
ODataConventionModelBuilder
用于简单、人为的模型,通常只是一个类

但是没有什么能真正解释这些惯例是什么;如何编写符合约定的模型。没有关于它的官方文件


那么约定是什么呢?

从我到目前为止看到的情况来看,这些约定是实体框架使用的约定,而不是OData的任何新约定。如果我错了,请纠正我

更多关于代码优先的约定,见下文,但在朱莉·勒曼的书中还有很多,我还没有在网上找到详尽的列表

更新

EF建模约定系统是可插拔的,每个约定由封装行为的类表示,这些类如下所示:

但是,这无助于确定哪些适用于ODataConventionModelBuilder,哪些由ODataConventionModelBuilder使用

  • AssociationInverseDiscoveryConvention提供了当相关类型之间仅存在一对导航属性时,将导航属性检测为彼此相反的约定
  • AttributeToColumnAnnotationConvention-代码优先约定的通用类,用于从.NET属性读取属性并基于这些属性生成列注释
  • AttributeToTableAnnotationConvention-代码优先约定的通用类,用于从.NET类型读取属性并基于这些属性生成表批注
  • ColumnAttributeConvention-表示处理在模型中的属性上找到的ColumnAttribute实例的约定
  • ColumnOrderingConvention-表示应用通过ColumnAttribute或DBModelBuilder API指定的列排序的约定
  • ColumnOrderingConventionStrict-应用通过ColumnAttribute或DBModelBuilder API指定的列排序的约定。如果检测到重复配置的列顺序,此约定将引发
  • ComplexTypeAttributeConvention表示处理在模型中的类型上找到的ComplexTypeAttribute实例的约定
  • ComplexTypeDiscoveryConvention表示一种约定,用于在没有主键、映射基类型和导航属性的情况下将类型配置为复杂类型
  • ConcurrencyCheckAttributeConvention表示在模型中的属性上处理ConcurrencyCheckAttributefound实例的约定
  • 约定-不覆盖配置的约定
  • DatabaseGeneratedAttributeConvention-表示处理在模型中的属性上找到的DatabaseGeneratedAttribute实例的约定
  • DecimalPropertyConvention-将十进制属性的精度设置为18,比例设置为2的约定
  • DeclaredPropertyOrderingConvention表示将主键属性移动到第一个出现的约定
  • ForeignKeyAssociationMultiplicityConvention表示根据外键属性的CLR可空性区分可选关系和必需关系的约定
  • ForeignKeyDiscoveryConvention表示发现外键属性的约定的基类
  • ForeignKeyIndexConvention表示为外键引入索引的约定
  • ForeignKeyNavigationPropertyAttributeConvention表示处理在模型中导航属性上找到的ForeignKeyAttribute实例的约定
  • ForeignKeyPrimitivePropertyAttributeConvention表示处理模型中外键属性上的ForeignKeyAttribute实例的约定
  • IdKeyDiscoveryConvention-检测主键属性的约定。按优先顺序识别的命名模式有:1“2号。[type name]Id主键检测不区分大小写
  • IndexAttributeConvention-用于在属性上发现IndexAttributes并在模型中生成IndexAnnotation列注释的约定
  • InversePropertyAttributeConvention表示处理在模型中的属性上找到的InversePropertyAttribute实例的约定
  • KeyAttributeConvention-处理模型中属性上的keyattribute实例的约定
  • KeyDiscoveryConvention-表示用于发现主键属性的约定的基类
  • ManyToManyCascadeDeleteConvention-将多对多关系中涉及的两个表中的级联删除添加到联接表的约定
  • 映射InheritedPropertiesSupportConvention-用于确保在映射继承属性时不会创建无效/不受支持的映射的约定
  • MaxLengthatAttribute约定-表示处理在模型中的属性上找到的MaxLengthatAttribute实例的约定
  • NavigationPropertyNameForeignKeyDiscoveryConvention-用于发现名称为从属导航属性名称和主体类型主键属性名称组合的外键属性的约定
  • NotMappedPropertyAttributeConvention表示处理在模型中的属性上找到的NotMappedAttribute实例的约定
  • NotMappedTypeAttributeConvention报告