C# 实体框架从整个列获取数据

C# 实体框架从整个列获取数据,c#,entity-framework,.net-core,system.linq.dynamic,C#,Entity Framework,.net Core,System.linq.dynamic,我有一个api调用getUser,它返回数据库中指定列的所有信息,但我想排除一些内容;电话号码、电子邮件等 试图摆弄LINQ,改变modelBuilder,改变optionBuilder 已查找任何表示“Select*from”的SQL,但未找到任何内容 删除我的用户模型中的东西确实有效,但是这是一种丑陋的方式 Result<UserModel> result = new Result<UserModel>(); try { using (var

我有一个api调用getUser,它返回数据库中指定列的所有信息,但我想排除一些内容;电话号码、电子邮件等

试图摆弄LINQ,改变modelBuilder,改变optionBuilder

已查找任何表示“Select*from”的SQL,但未找到任何内容

删除我的用户模型中的东西确实有效,但是这是一种丑陋的方式

Result<UserModel> result = new Result<UserModel>();
try
    {
        using (var db = new ComeatDBContext(optionsBuilder.Options))
        {
            var user = db.User
                .Include(f => f.Nationality)
                .Include(f => f.State)
                .FirstOrDefault(e => e.Id == id && !e.IsDeleted);

            result.ResponseObject = (new UserModel()).FromUser(user);
            var house = db.House.FirstOrDefault(e => e.UserId == user.Id);
            if (house != null)
            {
                result.ResponseObject.House = ( new HouseModel() ).FromHouse(house);
            }
            result.Success = true;
        }
Result结果=新结果();
尝试
{
使用(var db=new ComeatDBContext(optionsBuilder.Options))
{
var user=db.user
.包括(f=>f.国籍)
.包括(f=>f.State)
.FirstOrDefault(e=>e.Id==Id&&!e.IsDeleted);
result.ResponseObject=(new UserModel()).FromUser(user);
var house=db.house.FirstOrDefault(e=>e.UserId==user.Id);
if(house!=null)
{
result.ResponseObject.House=(新房屋模型()).FromHouse(房屋);
}
结果:成功=正确;
}
应该指定要包含(或不包含)的数据,但我会获取所有数据,除非在数据库删除这些值后将其设置为“null”。

the
。FirstOrDefault(…)
是导致基础数据库查询(SQL)的原因待执行。它将填充实体上定义的所有属性。然后,当您执行
(new UserModel()).FromUser(user);
时,数据实体将转换为
UserModel
对象

如果你想重用你的UserModel类,但不想填充所有的列,你可以这样做

var userModel = db.User
     .Select(x => new UserModel { Name = x.Name, Id = x.Id })
     .FirstOrDefault(e => e.Id == id && !e.IsDeleted);

result.ResponseObject = userModel;

或者,如果您想在不执行数据的情况下将响应项限制为最多一个,您可以使用
。Take(1)
,不幸的是,这不起作用“无法从'PLACEHOLDER.Business.Models.UserModel'转换为'PLACEHOLDER.Data.Models.User'@MikkelRohdeGlerup-我想您在分配result.ResponseObject的行上遇到了错误。将此行添加到我的响应中以澄清您不需要执行的操作(new UserModel())。FromUser(用户);不再…@DaggeJ非常感谢你!我已经为此奋斗了两天了!