ASP.NET MVC4 EF 同时插入2张表的数据,内中一张表的主键是另一张表的某一列的值

ASP.NET MVC4 EF 同时插入2张表的数据,其中一张表的主键是另一张表的某一列的值
如题,这个问题怎么解决?同时插入2张表,其中一张表的主键voteid是另一张表的某一列的值,其实我是想做一个投票系统,新建一个投票项以后,会在主表里生成一个投票ID,这个ID是自增长的,然后副表里的就是投票项,投票项是可以随意增加的,投票项里的某一列对应这个投票ID,也就是一对多的关系。
下面是插入数据库的代码,同时往2个模型里插入数据:
        /// 新增投票,建立一个父模型,里面包含了2个子模型
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult AddVote(Models.ModelList d)
        {
            //投票详情表
            vote_details vt = new vote_details() { 
            memo= d.vd.memo,
            isSingle=d.vd.isSingle,

            
            };
            vc.vote_details.Add(vt);



            //投票具体项表
            count_voting cv = new count_voting() {
            selectname=d.cv.selectname
            
            };

            vc.count_voting.Add(cv);

            vc.SaveChanges();


            return RedirectToAction("Index", "Home"); /*回到最初的原始界面*/
        
        }


下面是这个ActionResult对应的View
@{
    ViewBag.Title = "AddVote";
    Layout = "~/Views/Shared/_Layout.cshtml";
}



<h2>AddVote</h2>
@model KMSFanHome2.Models.ModelList   /*投票详情表*/

@{
    //定义其他MODEL,其它models要从返回的ViewBag相应类型进行转换才可以识别
    List<KMSFanHome2.Models.count_voting> voteList = ViewBag.count_votingList as List<KMSFanHome2.Models.count_voting>;
    
      }

<h2>投票基本设置</h2>

@using (@Html.BeginForm())
{
   @Html.ValidationSummary(false)
    
    
   <fieldset>
       <div class="editor-label">投票标题:@Html.EditorFor(model=>model.vd.memo)</div>

       <div> 投票类型:&nbsp;<label for="single"> @Html.RadioButtonFor(model => model.vd.isSingle, true, new { @id="single",@name="status",@checked="checked"})单选</label></div>
      <div><label for="multi">@Html.RadioButtonFor(model => model.vd.isSingle, false, new { @id="multi",@name="status"})多选</label> </div>


       <div id="voteMain">
           <div>投票选项:</div>


               @for(int i=0;i<2;i++)
               {
                    <div class="voteItem">第 @i 项: @Html.EditorFor(m=>Model.cv.selectname)</div>
           
               }
 
       </div>
       <div><input type="button" value="增加选项"  onclick="addItem()"/></div>

       <div><input type="submit" value="提交" /></div>
   </fieldset>


}


<script type="text/javascript">
    function addItem() {

        $("#voteMain").append($(".voteItem").html()+"<br />"); /*追加HTML*/
    }

</script>

------解决思路----------------------
我感觉哦 投票这个东东 同一时间内  一个人投 和同一时间内多个人投

一个人投的话 取最大的种子列即可 多个人投难免会造成标题重复的问题

这个时候从数据库出发这么玩 主角的类型设置为Guid  投票时在程序中new 一个  这样你两个数据库的更新都可以用他 这样一方面好控制  一方面 不会重复 标题重复 没有关系
------解决思路----------------------
不知道你的Model对象具体怎么建的,不过如果两个对象有关联的话,完全不需要保存两次,一次就可以了,类似这样:

var myVote=new Vote();
//设置属性值

//投票项
foreach(var itm in VodeItems){
myVote.VoteItems.Add(itm);
}

//保存
SaveChanges();

EF会自动在保存父对象之后取出ID并赋给子对象关联键

=================================================================
ASP.NET MVC免费分页控件MvcPager,Asp.Net MVC分页的解决之道:
http://www.webdiyer.com/mvcpager/
------解决思路----------------------
你这样的做法投票的主表和子表的插入不在一个事务中,另外用标题去查主表的记录当然会有重复。合适的做法是在你的投票详情实体中包括投票具体项的实体集;两者都赋值后一次提交。
public class Vote_details
{
   public  List<Count_voting> count_voting{get;set;}
}