在MVC 3解决方案中,在VS 2012下,运行代码分析后收到此类消息听起来很奇怪:
奇怪的是因为“DO NOT”分析中提到的类是由VS本身(而不是我)生成的。
要重现这一点,您可以:
所以,问题是,我们能做什么:重构自动生成的代码或忽略此消息?
下面是违反规则CA2214的自动生成类的示例:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Backoffice.Entities
{
using System;
using System.Collections.Generic;
public partial class BR_SIMUL_Supermarket_Product
{
public BR_SIMUL_Supermarket_Product()
{
this.BR_SIMUL_Supermarket_Product_Price = new HashSet<BR_SIMUL_Supermarket_Product_Price>();
}
public int product_id { get; set; }
public int category_id { get; set; }
public string product_name { get; set; }
public string product_measure { get; set; }
public bool product_active { get; set; }
public virtual BR_SIMUL_Supermarket_Category BR_SIMUL_Supermarket_Category { get; set; }
more stuff here...
答案 0 :(得分:2)
以下是我永久解决的问题:http://chuckbeasley.com/blog/?p=42200
答案 1 :(得分:1)
你应该随意压制这些。有关更多详细信息,请查看Entity Framework codeplex网站上的此discussion。
答案 2 :(得分:1)
这是设计允许延迟加载。当您通过DbContext
访问该类时,尽管有警告,但它不会在运行时失败。您应该仅在这些文件中禁止警告。