6 c# entity-framework properties class naming-conventions
以下是共享相同标识符的类和属性的一些示例:
public Coordinates Coordinates { get; set; }
public Country Country { get; set; }
public Article Article { get; set; }
public Color Color { get; set; }
public Address Address { get; set; }
public Category Category { get; set; }
Run Code Online (Sandbox Code Playgroud)
将POCO与实体框架一起使用时会更频繁地发生此问题,因为实体框架使用关系的属性名称.
那么该怎么办?使用非标准的类名?
public ClsCoordinates Coordinates { get; set; }
public ClsCountry Country { get; set; }
public ClsArticle Article { get; set; }
public ClsColor Color { get; set; }
public ClsAddress Address { get; set; }
public ClsCategory Category { get; set; }
Run Code Online (Sandbox Code Playgroud)
育
或者使用更具描述性的属性名称?
public Coordinates GeographicCoordinates { get; set; }
public Country GeographicCountry { get; set; }
public Article WebArticle { get; set; }
public Color BackgroundColor { get; set; }
public Address HomeAddress { get; set; }
public Category ProductCategory { get; set; }
Run Code Online (Sandbox Code Playgroud)
不太理想,但我想可以忍受它.
还是刚刚与它生活?
你最好的做法是什么?
这有时被称为"颜色"问题 - 我的建议只是与它一起生活.
C#语言规范专为此而设计,不是问题.从C#3规范的7.5.4.1节:
在EI表单的成员访问中,如果E是单个标识符,并且E作为简单名称(第7.5.2节)的含义是常量,字段,属性,局部变量或具有相同类型的参数作为类型名称(§3.8)的E的含义,则允许E的两种可能含义.EI的两个可能含义从不含糊,因为在两种情况下我都必须是E类的成员.换句话说,该规则只允许访问静态成员和嵌套类型的E,否则会发生编译时错误.
(后跟一个例子.)
显然,当你可以提供一个更具描述性的属性名,这是伟大的-但往往最好的名字还真是一样的性质.
这发生在框架本身 - 例如,HttpWebRequest.CookieContainer类型CookieContainer,并且有各种类型的Evidence属性类型Evidence.
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |