- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读和观看有关 MVC 的视频,但我开始有点困惑。简单的教程太简单了,它们似乎只涉及单个数据库表。呜呜呜!
高级教程假设存在大量知识,但我无法遵循这些知识。更不用说,有 15 种方法可以为您的数据库建模,没有人愿意解释为什么他们这样做或那样做。
因此,我正在寻找一个简单的教程或解释,说明您设计一个涉及多对多关系的简单 CRUD 应用程序将经历的过程,如下所述。我可能没有提供足够的信息,所以请随时请求更新。
更新:
我有兴趣看到 Linq To Sql 解决方案。
我浏览了nerddinner PDF,我的模型必须与他的略有不同。我希望与我的膳食和我的配料建立多对多的关系。他只是在 Dinner 和 RSVP 中使用一对多。此外,他从未展示过他是如何将 RSVP 附加到他的晚餐模型上的。这基本上是我遇到的问题。为什么我的膳食模型不包含成分列表?我有适当的外键。我不确定在哪里或如何设置它,以便我可以通过 Meal 模型访问成分,如果我想在详细信息 View 或其他东西上打印它们。
膳食
最佳答案
在我当前的项目中,我有很多这种关系的例子。我正在使用 MVC 1 和 LINQ-to-SQL。我当时经历了与你现在所经历的完全相同的挫折。最大的障碍是接受 LINQ-to-SQL 不直接管理多对多关系的事实,但要了解它不需要为了获取所需的信息。
让我们从 CRUD 中的 R 开始,因为它是演示需要做什么的最简单方法。现在,在这一点上,我建议创建一个强类型 View 模型,只是为了简化聚合 View 数据的任务并简化将膳食数据分配给详细信息 View 的任务:
public class MealDetailsViewModel
{
public int Id_Meal { get; set; }
public string Title { get; set; }
public string Description { get; set; }
private List<Ingredient> _Ingredients = new List<Ingredient>();
public List<Ingredient> Ingredients
{
get { return _Ingredients; }
set { _Ingredients = value; }
}
}
public ActionResult Details (int mealID)
{
Meal result = DataContext.Meals
.Where(a => a.Id_Meal == mealID)
.SingleOrDefault();
MealDetailsViewModel viewModel = new MealDetailsViewModel
{
Id_Meal = result.Id,
Title = result.Title,
Description = result.Description,
Ingredients = result.Meals-Ingredients
.Where(a => a.Id_Meal == mealID)
.Select(a => a.Ingredient)
.ToList()
};
return View(viewModel);
}
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<MealDetailsViewModel>" %>
<asp:Content ID="mainMealDetails" ContentPlaceHolderID="MainContent" runat="server">
<h2><%= Model.Title %></h2>
<h3><%= Model.Description %></h3>
<br />
<p>Ingredients:</p>
<ul>
<% foreach(Ingredient item in Model.Ingredients)
{ %>
<li><%= item.Name %></li>
<% } %>
</ul>
<br />
<%= Html.ActionLink("Update", "Edit", new { id = Model.Meal_ID }) %> |
<%= Html.ActionLink("Add Ingredient", "IngredientCreate", new{ id = Model.Meal_ID }) %> |
<%= Html.ActionLink("Delete", "Delete", new { id = Model.Meal_ID }) %> |
<%= Html.ActionLink("Back to Menu List", "Index") %>
</asp.Content>
关于asp.net-mvc - 使用 LINQ to SQL 在 ASP.NET MVC 中建模多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2145034/
我是一名优秀的程序员,十分优秀!