• MVC, EF, Code First 相关问题总结


    1. 控制表名单复数:

    在DbContext类中修改OnModelCreating()为:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }

    2. Entity Framework 内部错误调试:

    try
    {

      XXDbContext db = new XXDbContext();
      db.EntitySet.Add(user);
      db.SaveChanges();
    }
    catch (Exception ee)
    {
      throw ee.InnerException;
    }

    3. 建立空MVC项目时,需要引用EntityFramework.dll,然后才能正常使用DbContext。

    4. Html.BeginForm两种用法:

      a. @using(Html.BeginForm()){......}

      b. @{Html.BeginForm();} ...... @{Html.EndForm();}

    5. EF Power Tool 生成的Model及Mapping,如果要更新就只能重建,直接更新没有效果。

    6. 注意:您可能会看到因 Visual Studio 尝试验证该模板所导致的以下错误。由于我们不会在项目中运行这些模板,可以忽略该错误。

       正在编译转换: 找不到类型或命名空间名称“EfTextTemplateHost”(是否缺少 using 指令或程序集引用?)

       转自:http://msdn.microsoft.com/zh-cn/data/jj593170.aspx

    7. Html.TextBoxFor 给Input添加Html属性:

      单个属性:<%= Html.TextBoxFor(model => model.ReturnDate, new { size = 20 })%>

      多 个属性:<%= Html.TextBoxFor(model => model.CityFromRoute2, new Dictionary<string, object>() { {"size", 20 }, {"readnoly", "readnoly" } })%>

    8. Post方式提交表单时,表单中包含文件的时候Request.Files取不到文件是因为<from>b标签没有添加属性 enctype = "multipart/form-data" 。    

     MVC form: @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data", name = "Form1", id = "Form1" }))

    9. @section用法:配合母版页中的@RenderSection使用。如页面中@section styles{...}中的内容将展示在母版页中的@RenderSection("styles", false)位置上。参数  false意思是不验证页面中是否存在@section style,该参数如果为true的话,当页面中不存在@section styles的时候会报错。

    10. 找不到方法:“System.Data.Objects.ObjectContext System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext()”

      EntityFramework 5.0升级至6.0出现的问题。由于是自动升级,所以不容易被发现。引发该问题的原因是在EntityFramework6.0中删除了一些类并改变了一些命名空  间。解决办法:删除报错项目中的EntityFramework引用,并重新添加引用。

      参见:http://stackoverflow.com/questions/14106286/ef-6-system-data-objects-objectcontext-error

    11. ViewBag对象在HTML页面里无法正确显示符号,@Html.Raw(ViewBag.XXX)。

  • 相关阅读:
    js堆和栈
    document.write的用处!
    nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模块的Javascript
    addEventListener和attachEvent的区别
    保留两位小数
    文字图片飞舞
    CSS3 2D 转换
    安装phpstudy之后发现80端口被占用
    docker 部署项目的实战操作
    性能实战第一天基础01-设计测试场景以及如何做性能测试
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/3293915.html
Copyright © 2020-2023  润新知