How to Unable to determine composite primary key oracle db error message solve?

Viewed 39

Person.cs:

[Table (name : "Person")]
public class Person : BaseEntity
{
    [Key, Column(Order = 0), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public string PersonNo { get; set; }
    [Key, Column(Order = 1)]
    public string PersonType { get; set; }
    [Key, Column(Order = 2)]
    public string PersonKing { get; set; }
    
    public string Name { get; set; }
    public string Surname { get; set; }
    public DateTime Dates { get; set; }
}

PersonController

using(DbContext  _db =new DbContext())
{
   var person = _ db.Person.Where(x=>x.PersonNo=='1000').ToString();
   .
   .
}

Context:

public virtual DbSet<Person> Person { get; set;}

public MyContext(): base("Name=MyDbContext") {  }

public override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.HasDefaultSchema("DB");
}

The error happens on this line of code:

var person = _ db.Person.Where(x => x.PersonNo == '1000').ToString();

This is the error

Unable to determine composite primary key ordering for type Entity.Person

Database: Oracle and PersonNo, PersonType, PersonKing columns are part of the primary key.

1 Answers

try this:

 var person = _db.Set<Person>().Where(x=>x.PersonNo=='1000').FirstOrDefault();
Related