Проблема
Как динамически получить текст метки из ссылки на таблицу в базе данных на основе TableName и FieldName из базы данных и показать в представлении createEmployee.
Подробности
То есть мне нужно динамически получать текст метки из базы данных, а не статически из модели
ТАК, что каждый раз, когда мне нужно изменить текст метки, я буду менять его из базы данных, в зависимости от справочной таблицы.
И нет необходимости переходить из кода.
ЕСЛИ Вы даете мне функцию или что-то общее, потому что у меня есть больше моделей и вид, мне нужно сделать так)
Инструментыиспользуется SQL Server 2012 и Visual Studio 2017 ядро asp.net 2.1
База данных Имеет две таблицы Employee и Reference
Справочная таблица (имеет 3 ключа в качестве ключей композитного кода (Code, TableName, FieldName))
Классы моделей включают в себя HRContext
public class ReferenceFile
{
public int Code { get; set; }
public string TableName { get; set; }
public string FieldName { get; set; }
public string EnglishtextforLabel{ get; set; }
}
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public int EmployeeAge { get; set; }
}
public class HRContext : DbContext
{
public HRContext(DbContextOptions<HRContext> options)
: base(options)
{ }
public DbSet<Employee> Employees { get; set; }
public DbSet<ReferenceFile> ReferenceFiles { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Employee>()
.HasKey(t => new { t.EmployeeId });
modelBuilder.Entity<ReferenceFile>()
.HasKey(t => new { t.Code,t.TableName,t.FieldName });
}
}
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="EmployeeName" class="control-label"></label>
<input asp-for="EmployeeName" class="form-control" />
<span asp-validation-for="EmployeeName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="EmployeeAge" class="control-label"></label>
<input asp-for="EmployeeAge" class="form-control" />
<span asp-validation-for="EmployeeAge" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
</div>
</div>
Запрос Получение данных из справочной таблицы
SELECT TableName, FieldName,EnglishtextforLabel FROM ReferenceFile WHERE (FieldName = 'EmployeeId' ) AND TableName = 'Employee'
Здесь мне нужно получить метку при создании представления из ссылки на таблицу not имя статического поля
Пример данных для ReferenceTable
Code TableName FieldName EnglishtextforLabel
1 Employee EmployeeId Code
2 Employee EmployeeName Name
3 Employee EmployeeAge Age
В качестве справочной таблицы, приведенной выше, образец меток при создании представления должен быть ниже. Дайте мне результат ниже
:
Code
Name
Age