3

VS 2012 の MVC 3 ソリューションでは、コード分析の実行後に次のようなメッセージが表示されるのは奇妙に思えます。

ここに画像の説明を入力

「DON'T」分析で言及されているクラスがVS自体によって生成されたため、奇妙です(私ではありません)。

これを再現するには、次のことができます。

  1. ADO.NET Entity Data Modelをソリューションに追加し、
  2. データベース テーブル (SQL Server に既に存在する) をダイアグラムに追加します。
  3. ソリューションを再構築し、コントローラーと cshtml ビューを追加します (これらは自動的に生成されます)。
  4. ANALYZE メニューからコード分析を実行します。

問題は、自動生成されたコードをリファクタリングするか、このメッセージを無視するかです。

ルール 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...
4

3 に答える 3

2

これが私がそれを永久に解決した方法です:http://chuckbeasley.com/blog/?p=42200

于 2015-03-11T00:46:37.993 に答える
1

これらを自由に抑制してください。詳細については、Entity Framework codeplex サイトのこのディスカッションを参照してください。

于 2013-01-15T00:58:13.543 に答える
1

これは、遅延読み込みを可能にするための設計です。を介しDbContextてクラスにアクセスすると、警告にもかかわらず、実行時に失敗することはありません。これらのファイルでのみ警告を抑制する必要があります。

于 2013-06-10T07:16:41.757 に答える