因此,我使用实体框架的“代码优先”方法,并且我有映射文件来映射表信息并添加诸如验证之类的内容,例如:
this.Property(t => t.AccountName)
.IsRequired()
.HasMaxLength(25);
这是在使用Fluent API,我想知道如何通过字符串而不是T.AccountName获得属性名。我想动态设置这些属性,但我不知道如何通过编程实现。
无需评论这是否可取(!),您就可以实现所需的,因为Property()方法将表达式树作为其参数。请考虑以下内容:
public class MyEntity
{
[Key]
public int MyEntityId { get; set; }
public string MyProperty { get; set; }
}
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities
{
get { return this.Set<MyEntity>(); }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
var param = Expression.Parameter(typeof(MyEntity));
var propertyExpression = Expression.Lambda(Expression.Property(param, "MyProperty"), param);
modelBuilder.Entity<MyEntity>()
.Property((Expression<Func<MyEntity, string>>)propertyExpression)
.HasColumnName("Fish");
}
}
这里,我为myproperty
列构建配置,我在lambda表达式中通过名称引用该列。
上面的代码适用于string
属性,但需要进行一些修改才能适用于任何属性类型。转换为expression
对属性类型进行了硬编码,但我们可以使用动态语言特性消除转换。
var param = Expression.Parameter(typeof(MyEntity));
dynamic propertyExpression = Expression.Lambda(Expression.Property(param, "MyProperty"), param);
modelBuilder.Entity<MyEntity>()
.Property(propertyExpression)
.HasColumnName("FishFace");
问题内容: 我想建立这样的关系(一个区域在x个其他区域的附近) 不幸的是,这是行不通的,因为EF生成的FK不正确…我如何才能使像这样的结构起作用? 3个区域的示例:3 Zones: Zone 1, Zone 2, Zone 3 Zone 1 Neighours: Zone 2, Zone 3 Zone 2 Neighbours: Zone 1 Zone 3 Neighbours: Zone1 有什
好吧,我知道我对C#和MVC还很陌生,但我正在尝试使用代码优先的方法向数据库中添加项。 现在,我已经成功地为数据库创建了新条目,但当我转到SQL Server时,却找不到数据库或表。 因此,我的问题是,这些数据存储在哪里,因为我无法在SQL Server中看到它,就像我手动创建的其他数据库一样? 我的ConnectionString是:
我对Entity Framework 6非常陌生,我想在我的项目中实现存储过程。我有一个存储过程,如下所示: 班级: 我的问题是:如何调用存储过程并向其中传递参数?
问题内容: 我首先在我的项目中使用EF代码。我的DataModel中有以下代码 为了使该值不为空,我删除了“?” 并从“程序包管理器”控制台中运行“添加迁移”命令。以下迁移文件已生成。 但是当我运行Update-Database命令时: 我收到以下错误:无法将值NULL插入表“’‘的“ PasswordDate”列中;列不允许为空。UPDATE失败。该语句已终止。 请提出解决方案。 问题答案: 那
[将代码优先DbContext与实体框架5.0 RC一起使用] DbUpdateException:更新条目时出错 我需要能够将这些父类保存到数据库中,因为它们是唯一的,即使它们有时包含已存储的导航属性-我如何从这个子主键冲突中保存父类?
问题内容: 在这些多重性冲突中,我所看到的大多数其他问题都是代码优先的,而我将DB作为第一位。我进行了一些模式更改,并且从数据库刷新模型时出现以下错误: 多重性与关系“ FK_MarketSelectionWager_Bet”中的角色“赌注”中的引用约束冲突。由于从属角色中的所有属性都是不可为空的,因此,主体角色的多重性必须为“ 1”。 我需要在SQL或模型中进行修复的任何指针都很棒。 以下是涉及