gpt4 book ai didi

t4 - 在 POCO 模板 t4 生成器中查找属性是主键

转载 作者:行者123 更新时间:2023-12-04 02:46:07 27 4
gpt4 key购买 nike

我正在使用 VS 2012 附带的 POCO t4 模板生成器。我做了一些更改以包含 Entity.Name,但我无法找出主键。

public string EntityClassOpening(EntityType entity)
{
return string.Format(
CultureInfo.InvariantCulture,
"{0} {1}partial class {2}{3}<{4},{5}>{6}",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
": EntityBase",
entity.Name,
entity.Name,
_code.StringBefore(" ", _typeMapper.GetTypeName(entity.BaseType)));
}

我找不到从 EntityType 对象层次结构中查找主键的方法。它公开了属性,但该属性没有任何说明它是主键。

任何帮助表示赞赏。

最佳答案

以防万一有人在迁移 RIA 服务时尝试这样做,我正在使用 VS2013 中的标准 dbcontext 模板,并在实体模板中添加了两件事。

首先你需要:

using System.ComponentModel.DataAnnotations;

我把它放在靠近顶部的//---- 块下面。

然后我修改了看起来像这样的代码。只需搜索名字即可。我的更改是 ef.IsKey... 并添加 Key() 属性。
    var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
#>
<#if (ef.IsKey(edmProperty))
{#> [Key()]
<#}#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}

关于t4 - 在 POCO 模板 t4 生成器中查找属性是主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062694/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com