2017-11-08 9 views
0

私は次のIQueryableオブジェクトがあります。リストへのIQueryableオブジェクトを変換し、新しい項目を追加

 var user = from d in _context.Users 
     join userRole in _context.UserRoles on d.Id equals userRole.UserId 
     join role in _context.Roles on userRole.RoleId equals role.Id 
     where role.Name == "Liquidador" 
     select d; 

[表示するViewBagとして送信される。

 ViewBag.UserID = new SelectList(user.AsNoTracking(), "UserName", "Name", selectedUser); 

問題:

IQueryableの結果に新しい項目を追加する必要があります。だから私はこのように進めてきました:

UserNameList.Insert(0, new *NewWhat?* { Name = "Liquidador", UserName = "--Select--"}); 

通常、私は特定のモデルの新しい要素を宣言します。ただし

var UserNameList = user.Select(s => new { s.Name, s.UserName }).ToList(); 

、私は新しい項目を追加しようとしている何かが欠けていますこの場合、このIQueryableを宣言するモデルはわかりません。どのようなrecomendations?

おかげ

EDIT:

たIQueryableオブジェクトは、機能の一部として見るの入手方法に行く:

public async Task<IActionResult> Management() 
    { 
     PopulateUserDropDownList(); 

     var Tiendas = await _context.Stores.ToListAsync(); 
     StoreEmployee model = new StoreEmployee 
     { 
      Stores = Tiendas 
     }; 

     return View(model); 
    } 

このリストは、その後、ドロップダウンリストで提示されるが、テーブル内:

 <td class="col-md-2"> 
      <div class="form-group" form="@(String.Format("{0}{1}","form",item.StoreID))"> 
       <div> 
       <select asp-for="@item.Usuario" class="form-control" asp-items="ViewBag.UserId" form="@(String.Format("{0}{1}","form",item.StoreID))"></select> 
       <span asp-validation-for="@item.Usuario" class="text-danger"></span> 
       </div> 
      </div> 
     </td> 

答えて

0

大藤...追加する少し匂いは

public class UserDTO 
{ 
    public string Name { get; set; } 
    public string UserName { get; set; } 
} 

あなたはクラスUserDTO(またはより多くのあなたが好きな他の名前)を定義した場合、それはきれいになるようだと、あなたは

var UserNameList = user 
    .Select(s => new UserDTO { Name = s.Name, UserName = s.UserName }) 
    .ToList(); 

UserNameList.Insert(0, new UserDTO { Name = "Liquidador", UserName = "--Select--"}); 

を行います空の要素はデータ配列の一部として、私の推奨は、剃刀のビューでそれを処理し、実際のデータでUserNameListを送信することです。ドロップダウンカミソリのメソッドには、空の要素テキストを指定するオーバーロードが含まれています。

HTMLを表示すると、より良いソリューションを実装するのに役立ちます。

+0

情報が追加されました。それは他のaproachを試して十分ですか? –

関連する問題