![](/img/trans.png)
[英]how can i change table name by fluent API of entity framework code first in c#?
[英]How I can get the name of tables has relation with specific table using Entity Framework C#
如何使用 Entity Framework C# 获取与特定表有关系的表名?
List<string> results = db.Database.SqlQuery<string>("SELECT name, OBJECT_NAME(parent_object_id) FROM sys.foreign_keys WHERE referenced_object_id = OBJECT_ID('" + currentmodel + "')").ToList();
您可以使用EF SqlQuery
+ sys.foreign_keys join sys.tables
来做到这一点。
public IList<ForeignTableViewModl> QueryForeignTable(string tableName)
{
using(var db = new Db())
{
var sql = @"
select
fk.name as [FkName],
tp.name as [ParentTable],
tr.name as [RefrencedTable]
from sys.foreign_keys fk
inner join sys.tables tp on fk.parent_object_id = tp.object_id
inner join sys.tables tr on fk.referenced_object_id = tr.object_id
where tp.name = @p0
";
return db.Database.SqlQuery<ForeignTableViewModl>(sql, tableName).ToList();
}
}
public class ForeignTableViewModl
{
public string FkName { get; set; }
public string ParentTable { get; set; }
public string RefrencedTable { get; set; }
}
它会得到北风演示数据库的结果,如:
已完成,但此查询仅返回前 3 个 FK 我想返回所有 FK
public IList<ForeignTableViewModl> QueryForeignTable(string tableName)
{
using(var db = new Db())
{
var sql = @"
select
fk.name as [FkName],
tp.name as [ParentTable],
tr.name as [RefrencedTable]
from sys.foreign_keys fk
inner join sys.tables tp on fk.parent_object_id = tp.object_id
inner join sys.tables tr on fk.referenced_object_id = tr.object_id
where tp.name = @p0 or tr.name = @p0
";
return db.Database.SqlQuery<ForeignTableViewModl>(sql, tableName).ToList();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.