2017-05-18 3 views
0

Ich würde gerne wissen, ob mit ASP.NET mit EF Textbaustein ist es möglich:Composive Primärschlüssel auf ASP.NET Boilerplate

  1. die Composive Primärschlüssel in EF verwenden. Ich habe viele Beispiele mit nur einer Spalte in TPRimaryKey im Repository gesehen.
  2. Der Name der Spalte der Primärschlüssel ist erforderlich Anruf "Id".

Ich suchte online, aber ich kann die Antwort nicht finden.

Antwort

1

Ein Beispiel über Ihre Frage

public class MyEntity : Entity<string> 
{ 
    [NotMapped] 
    public override string Id 
    { 
     get { return MyIntField + "-" + MyStringField ; } 
     set { /* no need set */ } 
    } 

    [Key] 
    [Column(Order = 1)] 
    public virtual int MyIntField { get; set; } 

    [Key] 
    [Column(Order = 2)] 
    public virtual string MyStringField { get; set; } 

    public virtual string OtherField { get; set; } 
} 

Und dann das Repository wie diese

public class MyEntityAppService: IMyEntityAppService { 
    private readonly IRepository < MyEntity, string > _myEntityRepository; 

    public AccountAppService(IRepository < MyEntity, string > myEntityRepository) { 
    _myEntityRepository = myEntityRepository; 
    } 

    public void Test() { 
    _myEntityRepository.Insert(new MyEntity { 
            MyIntField = 1, 
            MyStringField = "test", 
            OtherField = "Alper Ebicoglu" 
           }); 

    var myAllEntities = _myEntityRepository.GetAllList(); 

    var myFilteredEntity = _myEntityRepository.Single(s => s.MyIntField == 1 && 
                s.MyStringField == "test"); 

    } 

    // ... 
    } 

PS verwenden: einige Repository Methoden möglicherweise nicht wie erwartet funktionieren. also vor der Implementierung des Lösungstests alle Repository-Methoden

Verwandte Themen