使用MVC ASP.NET将数据插入多个表

时间:2013-02-26 12:35:04

标签: asp.net-mvc master-detail asp.net-mvc-viewmodel

我是MVC ASP.NET的新手。虽然过去可能已经解决了这个问题,但我仍然无法找到问题的完整解决方案。

问题:我有两张桌子 视频

列是: 视频ID, FlimName, 说明

VideoDetails

列是: VideoDetailsID,Actor,VideoID(来自表格视频的外键)

我希望从我的MVC模型中将数据插入到这两个表中。[首先插入视频表,然后使用视频表的主键即 VideoDetails ,即VideoID也会随着 VideoDetails 表格的记录一起插入。

我找到了一些问题的解决方案,但似乎并没有合并为一个完整的解决方案。

我是否可以逐步解决此问题,或者有人可以帮助我解决此问题。

我在这个论坛上已经阅读过ViewModel方法,但还不清楚它的功能和流程。请帮忙。

谢谢,

Mangesh

2 个答案:

答案 0 :(得分:3)

有不同的解决方案可以执行此操作。如果你想使用淘汰赛那么exampel就是here。您还可以看到this帖子

您可能会看到另一种方法here

您可能还会看到Mvc Controls Toolkit

答案 1 :(得分:3)

您需要的方法是使用Entity Framework。您可以在此处找到有关实体框架的更多信息:

http://www.asp.net/entity-framework

如果您使用的是Entity Framework,代码将如下所示:

var context = new MyDBModelContext();

tblVideo video = new tblVideo()
{
    FileName = theFileName,
    Description = theDescription
};

context.tblVideos.Add(video);
context.SaveChanges();

tblVideoDetails details = new tblVideoDetails()
{
    VideoID = video.VideoID,
    Actor = theActor,
};

context.tblVideoDetails.Add(details);
context.SaveChanges();

如果您使用SQL,请将相应的详细信息传递到您的存储过程并按如下方式插入:

INSERT INTO Video
    (FileName, Description)
    VALUES(@FileName, @Description)

INSERT INTO VideoDetails
    (VideoID, Actor)
    VALUES(SCOPE_IDENTITY( ), @Actor)

注意:上面的SQL应该可以工作,但首先要测试。