Cat.Data/Cat.Data.EF/MapConventions.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
namespace Cat.Data.EF
{
/// <summary>
/// 主键约定,把属性Id当做数据库主键
/// </summary>
public class PrimaryKeyConvention
{
public static void SetPrimaryKey(ModelBuilder modelBuilder, string entityName)
{
modelBuilder.Entity(entityName).HasKey("Id");
}
}
/// <summary>
/// 列名约定,比如属性ParentId,映射到数据库字段parent_id
/// </summary>
[Obsolete]
public class ColumnConvention
{
public static void SetColumnName(ModelBuilder modelBuilder, string entityName, string propertyName)
{
StringBuilder sbField = new StringBuilder();
char[] charArr = propertyName.ToCharArray();
int iCapital = 0; // 把属性第一个开始的大写字母转成小写,直到遇到了第1个小写字母,因为数据库里面是小写的
while (iCapital < charArr.Length)
{
if (charArr[iCapital] >= 'A' && charArr[iCapital] <= 'Z')
{
charArr[iCapital] = (char)(charArr[iCapital] + 32);
}
else
{
break;
}
iCapital++;
}
for (int i = 0; i < charArr.Length; i++)
{
if (charArr[i] >= 'A' && charArr[i] <= 'Z')
{
charArr[i] = (char)(charArr[i] + 32);
sbField.Append("_" + charArr[i]);
}
else
{
sbField.Append(charArr[i]);
}
}
modelBuilder.Entity(entityName).Property(propertyName).HasColumnName(sbField.ToString());
后面还有 3 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。