Emi*_*uiz 0 c# entity-framework-core .net-core
问题:有了泛型DbSet<T>,我如何知道类 T 是否有身份密钥?
这是我的情况:
public static string SqlCodeGenerator<T>(DbContext context) where T : class
{
var query = string.Emtpy;
var set = context.Set<T>();
if (set.HasIdentity())
query += "SET IDENTITY_INSERT ON;\n";
// Continue building query...
}
Run Code Online (Sandbox Code Playgroud)
我不需要知道哪个属性,只要它有或没有(尽管为答案提供了额外的分数)。
更灵活的方法,不直接链接到 SQL Server,但它涵盖了 Identity 列。至少那些标有[DatabaseGenerated(DatabaseGeneratedOption.Identity)]attribute的属性
foreach (var key in dbContext.Model.FindEntityType(typeof(Entity)).GetKeys())
{
foreach (var property in key.Properties)
{
if (property.ValueGenerated == Microsoft.EntityFrameworkCore.Metadata.ValueGenerated.OnAdd)
{
Console.WriteLine("gotcha!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |