C# - Как установить Builder.property (). Hascomment Динамически в модели в структуре объекта Core 3.1C#

Место общения программистов C#
Ответить
Anonymous
 C# - Как установить Builder.property (). Hascomment Динамически в модели в структуре объекта Core 3.1

Сообщение Anonymous »

Я пытаюсь применить Builder.property (_ => _. Пока вот моя попытка использовать отражение: < /p>

Код: Выделить всё

public class User : TableFieldsBase, IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
var tableName = this.GetType().Name;
builder.ToTable(tableName);

var props = GetType().GetProperties();
foreach(var prop in props)
{
var descriptionAttr = this.GetAttributeFrom(prop.Name);
if(descriptionAttr != null)
{
builder.Property(t => EF.Property(t, prop.Name)).HasComment(descriptionAttr.Description);
}
}
}

[Description("This is the username")]
public string Username { get; set; }

[DisplayName("Email")]
public string Email { get; set; }
}
< /code>
Как видите, я зацикливаю все свойства модели и извлекая текст описания. Например, имя пользователя 
имеет атрибут описания, который я хочу использовать, чтобы сохранить его в поле «Комментарий» в моей базе данных. Проблема здесь я не уверен, как динамически применять свойство в методе Builder.property . Может быть, я не неправильно смотрю на это?

Код: Выделить всё

Exception has occurred: CLR/System.ArgumentException
Exception thrown: 'System.ArgumentException' in Microsoft.EntityFrameworkCore.dll: 'The expression 't => Property(t, value(Backend.Classes.Api.Avpf.Core.Models.User+c__DisplayClass0_0).prop.Name)' is not a valid property expression. The expression should represent a simple property access: 't => t.MyProperty'.'
at Microsoft.EntityFrameworkCore.Infrastructure.ExpressionExtensions.GetPropertyAccess(LambdaExpression propertyAccessExpression)
at Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder`1.Property[TProperty](Expression`1 propertyExpression)
at Backend.Classes.Api.Avpf.Core.Models.User.Configure(EntityTypeBuilder`1 builder) in Models\User.cs:line 38
заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/655 ... del-in-ent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»