多对多的实体问题

时间:2015-07-16 10:50:24

标签: c# .net asp.net-mvc-4 orm

我解决了另一个我似乎无法解决的问题。 Sample Pictures

借助图片,我希望你能看到我想要的东西。 我有一个界面,用户选择一个printertype。选择printertype后,应显示链接到此printertype的所有常见问题解答。

printertypeFAQ表没有模型,只有this.printertype = new HashSet<printertype>();public virtual ICollection<printertype> printertype { get; set; }可以在printertype和FAQ模型中找到。

我无法访问printertypeFAQ表,这对我来说很重要。 你能帮我看看如何访问表格并保存数据吗?

faq.printertype = db.printertypeSatz.Include(i => faq.printertype).Where(i => i.ID == _Type).Single();

上面的例子不起作用。

我感谢所有人的帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

所以这将根据主键

获得printertype实体
var _printertype = db.printertypeSatz.Find(_ID);

一旦你有了这个,就可以像这样访问常见问题

foreach (var _faq in _printertype.FAQ) { Console.WriteLine(_faq.Headline); }

我想您只想进行一次数据库调用,因此您可以尝试以下方法来获取相关常见问题解答的打印类型

foreach (var _faq in db.printertypeSatz.Find(_ID).FAQ) { Console.WriteLine(_faq.Headline); }

希望有帮助吗?

答案 1 :(得分:0)

我找到了解决方案。

一开始我创建

objvalidation

之后我编辑了这样的ActionResult

        private void PopulatePrintertypeDropDownList(object selectedPrintertype = null)
    {
        var printertypeQuery = from p in db.printertypeSatz
                               orderby p.Type
                               select p;
        ViewBag.printertypeID = new SelectList(printertypeQuery, "ID", "Type", selectedPrintertype);
    }

现在一切正常,就像我想要的那样。

对于每个在阅读我的问题时头疼的人都很抱歉, 还要感谢所有答案。