簡體   English   中英

實體框架從ENTIRE列獲取數據

[英]Entity Framework getting data from the ENTIRE column

我有一個api調用getUser,它從數據庫的指定列返回所有信息,但是我想排除一些東西。 電話號碼,電子郵件等

嘗試擺弄LINQ,更改modelBuilder,更改optionBuilder

尋找任何說“ Select * from”的SQL,但是什么也沒找到

刪除UserModel中的內容確實可以,但是這是一種丑陋的方式。

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

期望指定要包括(或不包括)哪些數據,但是我會得到所有東西,除非在數據庫要求它們之后將值設置為“ null”。

.FirstOrDefault(...)是導致執行基礎數據庫查詢(SQL)的原因。 它將填充在實體上定義的所有屬性。 然后,在執行時,數據實體將轉換為您的UserModel對象(new UserModel()).FromUser(user);

如果要重用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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM