【问题标题】:ASP.NET Massive - How to create database to display VIEWASP.NET Massive - 如何创建数据库以显示 VIEW
【发布时间】:2012-05-27 23:58:27
【问题描述】:

大家好,想寻求帮助,因为我不明白如何在 ASP.NET MVC 3 中使用 MASSIVE.CS 创建可以使用的数据库。

我一直在搞清楚如何在我的 MVC 项目中实现这个 MASSIVE 类,以及连接字符串如何在北风数据库中连接。我只有this tutorial https://github.com/robconery/massive,但我仍然无法理解。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MovieMassive.Models;

namespace MovieMassive.Controllers
{
    public class MoviesController : Controller
    {

        MovieTable dbMovies = new MovieTable();

        public ActionResult Index()
        {
            dbMovies.Query("SELECT * FROM MovieTable");
            return View(dbMovies);
        }

        public ActionResult Add() {
            return View();
        }
    }
}

连接字符串:

<add name="MyConnectionString" connectionString="data source=|DataDirectory|MyDatabase.sdf"  providerName="System.Data.SqlServerCe.4.0"/>

MovieTable 类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Massive;

namespace MovieMassive.Models
{
    public class MovieTable : DynamicModel
    {
        public MovieTable() : base("movieMassive", "MovieTable", "ID") { }
    }
}

好的,这就是我想要的,你能帮我如何正确运行视图Index.cshtml。属性还没有。因为不知道如何用数据库实现它......任何帮助将不胜感激......

@model IEnumerable<MovieMassive.Models.MovieTable>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table>
    <tr>
        <th>Title</th>
        <th>ReleaseDate</th>
        <th>Genre</th>
        <th>Price</th>
        <th>Rating</th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}

</table>

我需要它正确运行才能使用大规模创建基本 CRUD。提前谢谢..

【问题讨论】:

  • 具体有什么不明白的?
  • @Michael Petrotta :不知道如何用数据库实现这个 Massive。

标签: c# asp.net-mvc-3 massive northwind


【解决方案1】:

代码更新成问题后更新 OP 注释

Jed,把你的 MoviesController 改成这个

public class MoviesController : Controller
{
    public ActionResult Index()
    {
        MovieTable dbMovies = new MovieTable();
        dbMovies.All();
        return View(dbMovies);
    }
    ...
}

访问 TekPub.com,观看 MVC 2 视频(因为它们是免费的),因为 Rob Conery 向您展示如何将 Massive 文件实现到 MVC 应用程序中

这是直接链接

ASP.NET MVC Concepts - free

Rob 的 Massive.cs 文件基本上是一个 ORM(对象关系映射)工具,用于查询数据存储中的表并将它们用作应用程序中的对象。

实施起来很容易。你需要:

  • web.config 中的ConnectionString 指向您的数据库。这是一个示例 SQL 连接字符串:

    <connectionStrings>
        <add name="MyConnectionString" 
             connectionString="Data Source=DNSServerName;Initial Catalog=DatabaseName;user id=Username;password=Password" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
    

如果您使用的不是 MS SQL,您可以访问 connectionstrings.com 以获取您的特定平台

  • 将从 GitHub 下载的 Massive.cs 文件拖放到您的应用程序中。您的解决方案如何划分将影响您添加文件的位置。如果您在 ASP.NET MVC 应用程序中只使用一个项目,那么您可以将其添加到项目根目录中,或为其创建一个文件夹。如果我没记错的话,Rob 使用了一个名为 Infrastructure 的文件夹。

注意 - 大多数现实世界的应用程序都由 UI 项目、业务逻辑层和数据访问层组成。如果您使用的是这样的 N 层解决方案,那么 Massive.cs 文件应该进入您的 DAL。

  • 准备就绪,这就是实施 Massive 的全部内容!

用法

要在您的应用中使用海量,只需执行以下操作: 我正在使用单个项目 MVC 应用程序的简单示例,而不是分离层。

public ActionResult Index() {
    var table = new Products();
    var products = table.All();
    return View(products);
}

同样,这不是最严格的用法。您应该了解所有有关使用 MVC 模式以及如何将您的解决方案/应用程序构建为正确设计的知识。通常,您将使用具有 Product 属性的 ViewModel,然后将从对 table.All(); 的大规模调用返回的 products 映射到您的 ViewModel

这是一个简单的速成课程,希望对某人有所帮助:-)

【讨论】:

  • 没问题,我知道不知道从哪里开始很难开始。但是 StackOverflow 确实适用于不太广泛的问题,并希望用户自己进行大量研究。像 Rob Conery 编写的 Massive.cs 之类的东西有点具体,我知道那里没有太多关于它的文档。
  • 为了回答 Jed 的问题,有很多视频需要挖掘。既然你似乎对这个包装器有一些了解,你能参考一些更具体或更有针对性的东西吗?更好的是(因为所有链接都失效了),在这里写点东西怎么样?
  • 我的预感是,除了找到他的问题的答案之外,他还会很高兴获得额外的免费教程 :-)
  • @Jed 我再次更新了我的答案以处理您的特定代码问题
  • @Jed 不,从某种意义上说,Massive 正在为您做这件事,您只需像使用电影表一样定义表并像那样访问它们。您不要将 EntityFramewith 与 Massive 一起使用,而是使用其中一个或另一个,因为它们都在做同样的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2021-08-28
相关资源
最近更新 更多