エンティティからのドロップダウンリスト値を組み合わせることができますか?
家系の名前と名の人のクラスがあるとします
私はこれをやってみました:
ViewBag.uservalues = new SelectList(db.Persons, "ID", "FirstName" + " " + "LastName");
しかし、これはエラーを吐き出します。
エンティティからのドロップダウンリスト値を組み合わせることができますか?
家系の名前と名の人のクラスがあるとします
私はこれをやってみました:
ViewBag.uservalues = new SelectList(db.Persons, "ID", "FirstName" + " " + "LastName");
しかし、これはエラーを吐き出します。
SelectList
コンストラクターへの呼び出し
new SelectList(db.Persons,"ID", "FirstName"+" " + "LastName");
このオーバーロードを使用します。これには、バインドするパブリックフィールドまたはプロパティの名前が必要ViewModel
です。おそらく、ViewModelに「FirstNameLastName」という名前のフィールドまたはプロパティがありません。
ViewModel
2つのフィールドを連結するプロパティをクラスに追加し(それを呼び出しますFirstAndLastName
)、呼び出しでそのプロパティを名前で指定しますSelectList
。
new SelectList(db.Persons,"ID", "FirstAndLastName");
var query = from c in db.Persons
select new { id = c.ID,Names = c.FirstName + " " + c.LastName };
ViewBag.personid = new SelectList(query, "ID", "Names");
エンティティ フレームワークは部分クラスを作成するため、使用する派生プロパティを持つ同じ名前空間に別の部分クラスを作成する必要があります。
エンティティ フレームワークがクラスを作成した場合:
public partial class Person
{
public String FirstName {get;set;}
public String LastName{get;set;}
public Int32 ID{get;set;}
}
新しい部分クラスを作成する
public partial class Person
{
public String FullName {get{ return this.FirstName + " " + this.LastName}}
}
プロジェクトのどこかにある別のフォルダーに保存します(ただし、名前空間は同じです)