Linqを使用して2つのデータオブジェクトを含むオブジェクトを作成しようとしています。 Linqの式から、私はオブジェクトを直接組み立てようとしています。LinqからMVCを使用している多くのオブジェクト
public class SupplierCategories
{
public category _category;
public category_sub _category_sub;
private bool _IsActive;
private int? _SupplierID;
public SupplierCategories()
{
}
public bool IsActive
{
get
{
return _IsActive;
}
set
{
_IsActive = value;
}
}
public int? SupplierID
{
get
{
return _SupplierID;
}
set
{
_SupplierID = value;
if (_SupplierID != null) // The county is active if there is a supplier ID matching
{
_IsActive = true;
}
}
}
}
注:カテゴリとcategory_subオブジェクトは、すべてのEntity Frameworkを使用して設定されている
含むクラスは次のようになります。
マイリンク式は、2つのテーブルを持っており、次のようになります。
public IEnumerable<SupplierCategories> GetAllOrdered()
{
IEnumerable<SupplierCategories> areaList;
var results = from cat in dbContext.categories
join sub in dbContext.category_sub on cat.id equals sub.categoryid
orderby cat.id ascending, sub.name ascending
select new SupplierCategories
{
_category = { new category { cat.id, cat.name } },
_category_sub = { new category_sub { sub.id, sub.categoryid, sub.name } }
};
areaList = results.ToList();
return areaList;
}
うまくいけば、あなたは私が直接「_category」と「_category_sub」オブジェクトを作成しようとしていますことがわかります。
私が手にエラーがある:それは 'System.Collections.IEnumerable' Dを実装していない ので
のエラー5種類 'Essential_Collections.Models.category' コレクション初期化子で初期化できません:\ Webサイト\エッセンシャル コレクション\開発\ビルド\エッセンシャル コレクション\モデル\ SupplierCategories \ SupplierCategoriesRepository.cs 51 37エッセンシャルコレクション
任意の溶液またはおそらく他のアプローチは感謝
おかげで非常に多く、正常に動作します。しかし、テーブルに直接マップしなかったオブジェクトを作成したい場合は、上記のような個別の値を指定できますか? – Billyhomebase
@Billyhomebase:@BFreeは、カテゴリおよびcategory_subのオブジェクトコンストラクタで間違っていた場所を強調表示します。適切なコンストラクタを持っているか、または初期化しているプロパティを適切に識別すれば、そのオブジェクトに対して新しいオブジェクトをインスタンス化できます。 – Lazarus
これが "うまくいく"場合は、答えとして受け入れることをお勧めします。 –