C# 在MVC中,如何映射回实际的sql表列名,而不是模型?
我正在将我的表列名映射到中的通用方式,以便在模型中使用它们。 比如: Iif如果我知道FirstName字段已使用model在页面上修改,则需要知道sql表中的列名为“First_name” 不管怎么说,我们都要采取行动 感谢阅读映射 我以前也看到过类似的问题,还有一些不太令人满意的解决方案,它们是基于拆分由C# 在MVC中,如何映射回实际的sql表列名,而不是模型?,c#,entity-framework,C#,Entity Framework,我正在将我的表列名映射到中的通用方式,以便在模型中使用它们。 比如: Iif如果我知道FirstName字段已使用model在页面上修改,则需要知道sql表中的列名为“First_name” 不管怎么说,我们都要采取行动 感谢阅读映射 我以前也看到过类似的问题,还有一些不太令人满意的解决方案,它们是基于拆分由DbSet生成的SQL字符串。访问映射元数据的尝试被不可访问的内部类型阻止。这些信息如此隐秘,一直困扰着我。无论如何,这是你自己的映射 所以我做了一些鬼混,看看这里是否有改进的地方。因为所有
DbSet
生成的SQL字符串。访问映射元数据的尝试被不可访问的内部类型阻止。这些信息如此隐秘,一直困扰着我。无论如何,这是你自己的映射
所以我做了一些鬼混,看看这里是否有改进的地方。因为所有内容都可以从edmx文件中轻松读取,所以我从这里开始。终于到了那里。如果使用以下代码,edmx文件位于名为doc
的XDocument
中。我将在下面解释代码
var xn = XName.Get("Mappings", doc.Root.GetDefaultNamespace().ToString());
var mappingsNode = doc.Descendants(xn).Descendants().First();
var mappingDoc = XDocument.Parse(mappingsNode.ToString());
xn = XName.Get("MappingFragment", mappingDoc.Root
.GetDefaultNamespace().ToString());
var mappings = mappingDoc
.Descendants(xn)
.Select(x => new
{
Entity = x.Attribute("StoreEntitySet").Value,
Mapping = x.Descendants()
.Select(d => new
{
Property = d.Attribute("Name")
.Value,
Column = d.Attribute("ColumnName")
.Value
})
});
来自非常小的edmx的样本输出:
实体属性列
---------------------------------------------
类别CategoryID CategoryID
名称类别名称
描述
产品ID产品ID
名称产品名称
QuantityPerUnit QuantityPerUnit
单价
开始日期开始日期
说明:
edmx文件有一个固定的结构,我总结如下:
...
...
.读取映射
我以前也看到过类似的问题,还有一些不太令人满意的解决方案,它们是基于拆分由DbSet
生成的SQL字符串。访问映射元数据的尝试被不可访问的内部类型阻止。这些信息如此隐秘,一直困扰着我。无论如何,这是你自己的映射
所以我做了一些鬼混,看看这里是否有改进的地方。因为所有内容都可以从edmx文件中轻松读取,所以我从这里开始。终于到了那里。如果使用以下代码,edmx文件位于名为doc
的XDocument
中。我将在下面解释代码
var xn = XName.Get("Mappings", doc.Root.GetDefaultNamespace().ToString());
var mappingsNode = doc.Descendants(xn).Descendants().First();
var mappingDoc = XDocument.Parse(mappingsNode.ToString());
xn = XName.Get("MappingFragment", mappingDoc.Root
.GetDefaultNamespace().ToString());
var mappings = mappingDoc
.Descendants(xn)
.Select(x => new
{
Entity = x.Attribute("StoreEntitySet").Value,
Mapping = x.Descendants()
.Select(d => new
{
Property = d.Attribute("Name")
.Value,
Column = d.Attribute("ColumnName")
.Value
})
});
来自非常小的edmx的样本输出:
实体属性列
---------------------------------------------
类别CategoryID CategoryID
名称类别名称
描述
产品ID产品ID
名称产品名称
QuantityPerUnit QuantityPerUnit
单价
开始日期开始日期
说明:
edmx文件有一个固定的结构,我总结如下:
...
...
.读取映射
我以前也看到过类似的问题,还有一些不太令人满意的解决方案,它们是基于拆分由DbSet
生成的SQL字符串。访问映射元数据的尝试被不可访问的内部类型阻止。这些信息如此隐秘,一直困扰着我。无论如何,这是你自己的映射
所以我做了一些鬼混,看看这里是否有改进的地方。因为所有内容都可以从edmx文件中轻松读取,所以我从这里开始。终于到了那里。如果使用以下代码,edmx文件位于名为doc
的XDocument
中。我将在下面解释代码
var xn = XName.Get("Mappings", doc.Root.GetDefaultNamespace().ToString());
var mappingsNode = doc.Descendants(xn).Descendants().First();
var mappingDoc = XDocument.Parse(mappingsNode.ToString());
xn = XName.Get("MappingFragment", mappingDoc.Root
.GetDefaultNamespace().ToString());
var mappings = mappingDoc
.Descendants(xn)
.Select(x => new
{
Entity = x.Attribute("StoreEntitySet").Value,
Mapping = x.Descendants()
.Select(d => new
{
Property = d.Attribute("Name")
.Value,
Column = d.Attribute("ColumnName")
.Value
})
});
来自非常小的edmx的样本输出:
实体属性列
---------------------------------------------
类别CategoryID CategoryID
名称类别名称
描述
产品ID产品ID
名称产品名称
QuantityPerUnit QuantityPerUnit
单价
开始日期开始日期
说明:
edmx文件有一个固定的结构,我总结如下:
...
...
.读取映射
我以前也看到过类似的问题,还有一些不太令人满意的解决方案,它们是基于拆分由DbSet
生成的SQL字符串。访问映射元数据的尝试被不可访问的内部类型阻止。这些信息如此隐秘,一直困扰着我。无论如何,这是你自己的映射
所以我做了一些鬼混,看看这里是否有改进的地方。因为所有内容都可以从edmx文件中轻松读取,所以我从这里开始。终于到了那里。如果使用以下代码,edmx文件位于名为doc
的XDocument
中。我将在下面解释代码
var xn = XName.Get("Mappings", doc.Root.GetDefaultNamespace().ToString());
var mappingsNode = doc.Descendants(xn).Descendants().First();
var mappingDoc = XDocument.Parse(mappingsNode.ToString());
xn = XName.Get("MappingFragment", mappingDoc.Root
.GetDefaultNamespace().ToString());
var mappings = mappingDoc
.Descendants(xn)
.Select(x => new
{
Entity = x.Attribute("StoreEntitySet").Value,
Mapping = x.Descendants()
.Select(d => new
{
Property = d.Attribute("Name")
.Value,
Column = d.Attribute("ColumnName")
.Value
})
});
来自非常小的edmx的样本输出:
实体属性列
---------------------------------------------
类别CategoryID CategoryID
名称类别名称
描述
产品ID产品ID
名称产品名称
QuantityPerUnit QuantityPerUnit
单价
开始日期开始日期
说明:
edmx文件有一个固定的结构,我总结如下:
...
...
.在处理另一个问题时,我找到了一个更好的方法来实现这一点。我想这不是夏娃