【问题标题】:How to Unable to determine composite primary key oracle db error message solve?oracle db错误信息无法确定复合主键如何解决?
【发布时间】:2021-03-15 03:15:56
【问题描述】:

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; }
}

人员控制器

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

上下文:

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

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

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

错误发生在这行代码上:

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

这是错误

无法确定 Entity.Person 类型的复合主键顺序

数据库:Oracle 和 PersonNo、PersonType、PersonKing 列是主键的一部分。

【问题讨论】:

    标签: c# oracle entity-framework


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • FirstOrDefault 调用方法错误,但 .Count() 运行。谢谢。
    猜你喜欢
    • 2017-09-12
    • 2015-12-17
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多