Najpierw dodaj dokumentację do wygenerowanego kodu w modelu szkieletowym encji

Korzystam z modelu Entity Framework od czasu VS 2010. Kiedy tworzę projekt, EF generuje plik Model.Designer.cs zawierający wszystkie elementy. Ten plik projektanta zawiera również dokumentację dodaną do elementów w pliku EDMX.

Kiedy stworzyłem nowy projekt pierwszego modelu EF w VS 2012, plik Model.tt jest dodawany do mojego pliku EDMX. Ten szablon T4 generuje pojedynczy plik dla każdej jednostki w moim modelu. Niestety, dokumentacja z pliku EDMX nie jest używana w wygenerowanym kodzie.

Naprawdę lubię dokumentować mój model, więc przy jego użyciu pojawia się IntelliSense. Jedyne obejście, jakie do tej pory znalazłem, to usunięcie Model.tt i wygenerowanych plików klas i ponowne włączenie generowania kodu na moim pliku EDMX. Powraca to do zachowania, którego używam z VS 2010. Jednak wolałbym mieć osobny plik na podmiot.

Czy jest jakiś sposób (najlepiej przy użyciu narzędzi VS i bez konieczności modyfikowania jakichkolwiek plików dostarczanych z VS) na dołączenie dokumentacji z pliku EDMX do wygenerowanych plików pojedynczej klasy?

Edytuj: Aby dokładniej zilustrować mój problem, oto krótki przykład.

Powiedzmy, że mój model wygląda tak:

Zaznaczyłem część, w której wprowadziłem dokumentację w oknie Właściwości właściwości Id.

Tak wygląda obiekt w pliku EDMX:

    <EntityType Name="Entity1">
      <Key>
        <PropertyRef Name="Id" />
      </Key>
      <Property Type="Int32" Name="Id" Nullable="false" annotation:StoreGeneratedPattern="Identity" >
        <Documentation>
          <Summary>This is documentation for the ID property.</Summary>
        </Documentation>
      </Property>
    </EntityType>

Wygenerowana klasa (Entity1.cs) według Model.tt wygląda tak:

public partial class Entity1
{
    public int Id { get; set; }
}

Ale kiedy włączam generowanie kodu dla mojego modelu, tak wygląda obiekt w Model.Designer.cs:

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmEntityTypeAttribute(NamespaceName="Model1", Name="Entity1")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Entity1 : EntityObject
{
    #region Factory Method

    /// <summary>
    /// Create a new Entity1 object.
    /// </summary>
    /// <param name="id">Initial value of the Id property.</param>
    public static Entity1 CreateEntity1(global::System.Int32 id)
    {
        Entity1 entity1 = new Entity1();
        entity1.Id = id;
        return entity1;
    }

    #endregion

    #region Simple Properties

    /// <summary>
    /// This is documentation for the ID property.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Int32 Id
    {
        get
        {
            return _Id;
        }
        set
        {
            if (_Id != value)
            {
                OnIdChanging(value);
                ReportPropertyChanging("Id");
                _Id = StructuralObject.SetValidValue(value, "Id");
                ReportPropertyChanged("Id");
                OnIdChanged();
            }
        }
    }
    private global::System.Int32 _Id;
    partial void OnIdChanging(global::System.Int32 value);
    partial void OnIdChanged();

    #endregion

}

Widzisz więc: Model.Designer.cs zawiera mój niestandardowy ciąg dokumentacji „To jest dokumentacja właściwości ID”. podczas gdy Entity1.cs nie. Jednak Model.Designer.cs może być dość duży, jeśli istnieje wiele elementów, a debugowanie do tego pliku jest nieco powolne. Wolałbym mieć kilka małych plików (po jednym na podmiot), ale nadal zachowywać dokumentację z pliku EDMX w wygenerowanym kodzie.

questionAnswers(1)

yourAnswerToTheQuestion