EntityFramework 6.0 问题汇总

刚接触 ef,一堆问题,总结如下

1.表名 和类名 不一致 

参考了一下网址http://hi.baidu.com/handboy/item/559a773ae2bdcbc6382ffaec

在dbcontext类中,添加下面方法即可

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //表名和类名不同时的处理
            modelBuilder.Entity<User>() .ToTable("TBUser", "dbo");
        }

2.多个dbcontext公用一个数据库连接 

修改构造函数如下即可 MyDBContext是公用的数据库链接配置

public UserDBContext()
            : base("name=MyDBContext")//采用哪个数据库连接

{

}

3.针对数据库已存在的表,需要设置Database.SetInitializer<UserDBContext>(null); 关闭 同步检查 机制 否则会报错。


参考http://stackoverflow.com/questions/3600175/the-model-backing-the-database-context-has-changed-since-the-database-was-crea



其他

1、当数据库 配置文件 没数据库时,自动创建数据库和表,当表不存在时,报错,不自动创建表,目前不知道库存在时,如何自动创建表

2、创建实体时,可以传递对象,也可以传递相应的属性,大小写没关系,和顺序也没关系,不知道是什么原理

界面上不是该对象的属性,额外的input控件的值 ,通过 id号,好像不行,不知道怎么弄

 [HttpPost]
        public ActionResult Create(string password, string DispName, string loginname, string RegistTime)
        


完整代码如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcApplication4.Models
{
    public class User
    {
        public int Id { get; set; }
        public string LoginName { get; set; }
        public string PassWord { get; set; }
        public string DispName { get; set; }
        public DateTime RegistTime { get; set; }
    }

    public class UserDBContext : DbContext
    {
        public UserDBContext()
            : base("name=MyDBContext")//采用哪个数据库连接
        {
            //针对数据库已存在的表,关闭DatabaseInitializer的检查数据库的功能 同步检查特性
            Database.SetInitializer<UserDBContext>(null);
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //表名和类名不同时的处理
            modelBuilder.Entity<User>()
                .ToTable("TBUser", "dbo");
        }

        public DbSet<User> Users { get; set; }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值