C# EF核心复合主键,带空值

C# EF核心复合主键,带空值,c#,asp.net-core-mvc,ef-core-2.2,C#,Asp.net Core Mvc,Ef Core 2.2,只是想知道这是否可能:我有一个来自现有数据库的表,无法修改。我只对查看数据感兴趣。我不会更新表 没有主键。有两个键组合在一起会使行唯一。不幸的是,这两列都允许,并且都有空值 我试过: modelBuilder.Entity<IesHrEmployee>(entity => { entity.HasKey(o => new { o.PERS_NO, o.POS_NO }); entity.ToTable("I

只是想知道这是否可能:我有一个来自现有数据库的表,无法修改。我只对查看数据感兴趣。我不会更新表

没有主键。有两个键组合在一起会使行唯一。不幸的是,这两列都允许,并且都有空值

我试过:

 modelBuilder.Entity<IesHrEmployee>(entity => {
                entity.HasKey(o => new { o.PERS_NO, o.POS_NO });
                entity.ToTable("IES_HR_EMPLOYEES", "DBO");
            });
modelBuilder.Entity(Entity=>{
HasKey(o=>new{o.PERS\u NO,o.POS\u NO});
实体。ToTable(“员工”、“DBO”);
});
不幸的是,在我的存储库中

public class IesHrEmployeesRepository : IIesHrEmployeesRepository
{
        private DataContext context;

        public IesHrEmployeesRepository(DataContext ctx) => context = ctx;

        public IEnumerable<IesHrEmployee> IesHrEmployees => context.IesHrEmployees.ToArray();
}
public类IesHrEmployeesRepository:IIesHrEmployeesRepository
{
私有数据上下文;
公共IESHEMPLOYEESRepository(DataContext ctx)=>context=ctx;
public IEnumerable IESHEmployees=>context.ieshEmployees.ToArray();
}
toArray
调用中,我得到以下错误:

Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
139.9397ms中执行的操作UserNavigator.Controllers.IesHrController.Index(UserNavigator)失败:
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]

执行请求时发生未经处理的异常。System.Data.SqlTypes.SqlNullValueException:数据为空。无法对空值调用此方法或属性

在System.Data.SqlClient.SqlBuffer.get_String()上 位于System.Data.SqlClient.SqlDataReader.GetString(Int32 i)


不,不能从可为空的列组成主键。但是,如果只需要查询此表(无插入或更新),则可以在上下文中创建
DbQuery
属性,而不需要任何键。

否,不能从可为空的列组合主键。但是,如果只需要查询此表(无插入或更新),则可以在上下文中创建
DbQuery
属性,而不需要任何键