不包含“Add”的定义。
不包含“Add”的定义。
我正在尝试做与这个主题相同的事情,但是我遇到了一个错误:
\'System.Collections.Generic.IEnumerable\'不包含定义为\'Add\'的内容,也找不到接受类型为\'System.Collections.Generic.IEnumerable\'的第一个参数的扩展方法\'Add\'(是否缺少了using指令或程序集参考?)
这是我的代码:
[HttpPost] public ActionResult Create(ANIME anime) { var db = new MainDatabaseEntities(); var newanime = new ANIME { ID_AN = anime.ID_AN, TITLE_OR = anime.TITLE_OR, TITLE_EN = anime.TITLE_EN, GENRES = new List() }; foreach (var selectedAnime in anime.GENRES.Where(c => c.isSelected)) { var genre = new GENRES { ID_GE = selectedAnime.ID_GE }; db.GENRES.Attach(genre); newanime.GENRES.Add(genre); <--- this is the error line } db.ANIME.Add(newanime); db.SaveChanges(); return RedirectToAction("Index"); }
ANIME:
public partial class ANIME { public int ID_AN { get; set; } public string TITLE_OR { get; set; } public string TITLE_EN { get; set; } public virtual IEnumerable GENRES { get; set; } }
GENRES:
public partial class GENRES { public int ID_GE { get; set; } public string GENRE { get; set; } public bool isSelected { get; set; } public virtual ICollection ANIME { get; set; } }
错误在HttpPost
中的newanime.GENRES.Add(genre)
代码行中。我已经在所有模型和控制器中添加了using System.Linq
,但是并没有帮助。有什么想法如何解决这个问题吗?
编辑:
修复了上述内容后,出现了新的错误。我认为它与上一个错误无关,但我不想发布不必要的主题。
错误信息:
无法在LINQ to Entities查询中构造实体或复杂类型\'MainDatabaseModel.GENRES\'。
相关代码:
public ActionResult Create() { var db = new MainDatabaseEntities(); var viewModel = new ANIME { GENRES = db.GENRES.Select(c => new GENRES { ID_GE = c.ID_GE, GENRE = c.GENRE, isSelected = false }).ToList() }; return View(viewModel); }
admin 更改状态以发布 2023年5月25日
你有一个IEnumerable属性,它是用List初始化的。List类实现了IEnumerable接口。
当你执行类似于这样的操作:
IEnumerable myList = new List();
你是在说你希望你的对象具有IEnumerable接口的功能,这些功能也继承于List类。在这种情况下,Add方法不是IEnumerable接口的一部分,因为它只是List类的一个方法,所以你会遇到该异常。
因此,你需要将属性的类型从IEnumerable