今天使用了一下手写EntityFramework,发现一些常见的问题,做个记录: 1.以前使用模板生成不太在意的问题,就是在定义实体类时,如果没映射注释,自动映射的表名会变成复数形式 如:表名==>表名s 这样就会报找不到表的异常,因为确实没这个加了复数的表名 解决方法: 1) 重写自动映射的方法: using System.Data.Entity; using System.Data.Entity.ModelConfiguration.Conventions; namespace Linq2M…
解决windows下MySQL表名大写自动变小写的问题   有些人可能会遇到在windows下,表名不能用大写字母, 即使使用了大写字母的建表语句,还是会被自动转成小写.   解决方法:  打开 MySQL 的配置文件 my.ini ,在 [mysqld] 节下加入    Xml代码   lower_case_table_names=0     重启MySQL,大功告成.…
原文:http://blog.csdn.net/lizeyang 问题 SQL表名,应该用表对应资源对象的复数形式还是单数形式.例如一个用户表,表名是用user还是users更合适呢?   精华回答   用单数形式更佳,理由如下:   1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据.   2.便利性 单数形式更简单.有一些单词,它的复数形式可能是非常规的,或者就没…
报道越短,事情越严重!文章越短,内容越精悍! 文章以efcore 2.0.0-preview2.测试验证通过.其他版本不保证使用,但是思路不会差太远.源代码 目标: 1.实现entity的自动发现和mapper设置. 2.默认字符串长度,而不是nvarchar(max). 3.decimal设置精度 4.还没做 文章的最后附efcore 所有的可替换扩展service. 实现目标1:继承RelationalModelCustomizer,重写Customize方法.当然,我们也可以重写dbcon…
一.概念 表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表. Photograph实体结构: using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Li…
用单数形式更佳,理由如下: 1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多少个数据. 2.便利性 单数形式更简单.有一些单词,它的复数形式可能是非常规的,或者就没有复数形式,但是单数不一样,单数形式则没那么多讲究.有些单词的复数,可能会想到你头大,可能得好好google才出来 3.优雅 特别是一些master-detail形式的资源名称,统一用单数,读起来更方便,对齐更整…
MySQL在Linux下数据库名.表名.列名.别名大小写规则:  1.数据库名与表名是严格区分大小写 2.表的别名是严格区分大小写 3.列名与列的别名在所有的情况下均是忽略大小写的 4.变量名也是严格区分大小写的 注意: A.Linux下MySQL安装完后默认:区分表名的大小写,不区分列名的大小写 B.改变表名的大小写区分规则的方法:用root帐号登录,在/etc/my.cnf 或 /etc/mysql/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1…
mysql5.6版本配置文件有两个 1.默认的配置在program files/MySQL/MySQL Server 5.6/my-default.ini 2.一个在programData/MySQL/MySQL Server 5.6/my.ini 注意需要配置第二个的my.ini添加 [mysqld] lower_case_table_names=2 重启MySQL即可 引文: windows 和linux对大小写的敏感性不同而导致的.数据库和表名在 Windows 中是大小写不敏感的 ,而在…
天将window的项目迁移到linux上面,然后登录时一直报用户表找不到的错误信息. 检查发现数据库中的表名是m_user, 后来才想起来是大小写问题, 找到问题原因,解决方案如下: 修改/etc/my.cnf ,在[mysqld]下面添加一行,然后重启mysql数据库即可. service mysql stop service mysql start # 设置mysql表名不区分大小写lower_case_table_names=1…
using MvcShopping.Migrations; using MvcShopping.Models; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using S…