我已经阅读了Entity Framework 5 Beta中的新功能:
您现在可以为每个实体数据模型创建多个图表.任何人都可以进一步指导我关于此功能和任何有关此功能的入门教程.这是否意味着现在我们可以拥有多个edmx文件来更好地管理大量实体
实体框架5可以处理char枚举吗?我有一个int工作,但有一个char我得到下面的错误,其中数据库中的列是char(1).
The 'Gender' property on 'Division' could not be set to a 'String' value. You must set this property to a non-null value of type 'Gender'.
public enum Gender
{
Male = 'M',
Female = 'F'
}
Run Code Online (Sandbox Code Playgroud) 我正在使用独立关联(延迟加载)来访问我的代码优先模型中的相关实体,例如
public class Aaa {
public int AaaId {get;set;}
public string SomeValue {get;set;}
}
public class Bbb {
public int BbbId {get;set;}
public string SomeValue {get;set;}
public virtual Aaa MyIndependentAssociation {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
但我想知道如何在MyIndependentAssociation不实际加载记录的情况下访问外键值。
我假设Aaa_AaaId当我Bbb从数据库中检索实体时实际加载了该值(无论如何,根据实体表上的调试可视化工具)。
我如何访问该值(除了将外键关联添加到我的模型中)?
我升级了一个旧项目,ef4但现在我将其迁移到了ef5.
这是旧代码:
protected void SaveEntity<T>(T entity)
{
using (DocsManagerContainer context = new DocsManagerContainer())
{
string entityType = typeof(T).ToString();
GetLogger().LogMessage("Save " + entityType + " started", LogLevel.Info);
DbTransaction transaction = null;
try
{
context.Connection.Open();
transaction = context.Connection.BeginTransaction();
context.AddObject(typeof(T).Name + "s", entity);
transaction.Commit();
context.SaveChanges();
}
catch (Exception e)
{
GetLogger().LogMessage("Save " + entityType + " thrown error :", e, LogLevel.Error);
throw e;
}
finally
{
context.Connection.Close();
transaction = null;
}
GetLogger().LogMessage("Save " + entityType + " ended", LogLevel.Info); …Run Code Online (Sandbox Code Playgroud) Code First具有属性[NotMapped],用于不映射的属性:如何在模型优先模式下实现相同的功能?
我正在使用FilteredSet自动获取来自系统当前登录用户的数据。它为我提供了一种动态方式来从当前用户返回数据而不访问其他用户的数据。
更新实体时,我也想这样做。我可以使用FilteredSet从数据库中获取该实体,如果该实体ID不属于该用户,则用户会抛出异常,但我不希望先加载该实体,而不必附加该实体并进行更新。
到目前为止,我已经尝试:
public void UpdateOwnable<TEntity>(TEntity entity) where TEntity : class, IEntity, IUserOwnable
{
var entityLocal = SetOwnable<TEntity>().Local.SingleOrDefault(d => d.Id == entityId);
if (entityLocal==null)
{
entityLocal = this.SetOwnable<TEntity>().Attach(entity);
}
this.ChangeTracker.Entries<TEntity>().Single(d => d.Entity == entityLocal).State = EntityState.Modified;
}
Run Code Online (Sandbox Code Playgroud)
问题在于生成的查询不包含WHERE子句。我希望找到一种方式,其中Where子句不仅是实体的主键,而且还是用户ID。
Update Workout
SET name ..
WHERE id = 1
AND idUser = 123;
Run Code Online (Sandbox Code Playgroud)
我想让实体框架生成此SQL查询。为idUser使用“ AND”子句。
可以吗?
鉴于我的代码的上下文片段:
var calibration = new Calibration
{
CalibrationType = SelectedTest.TestTypeId
,Expiration = expirationDate
,LastSaved = DateTime.Now
,StatusTypeId = 1
,TechnicianId = SelectedTechnician.Id
,Phases = BuildCalibrationPhases()
};
db.Calibrations.Add(calibration);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
实体框架有没有办法在db.SaveChanges();完成后获取为校准对象选择(种子)的主键?
换句话说,如何在提交后获取此对象的主键?
我已从现有数据库创建了一个实体框架模型,没有任何问题或警告.我遇到了一个没有在代码中生成的表,并且没有出现在模型中.
这个表和其他一些非常类似的表非常简单:2列,每个外键和一个主键,它是两个外键的组合.
我正在挖掘其他一些解决方案,我读到的最接近的事情就是桌子上根本没有主键.它似乎不是那个问题,因为生成的XML看起来很好并且没有错误消息.
我在EDMX中的表格:
<EntityType Name="UserTaskSubscription">
<Key>
<PropertyRef Name="UserID" />
<PropertyRef Name="TaskID" />
</Key>
<Property Name="UserID" Type="int" Nullable="false" />
<Property Name="TaskID" Type="int" Nullable="false" />
</EntityType>
Run Code Online (Sandbox Code Playgroud)
我也试图放弃并重新创建EDMX,但我也没有成功.
任何建议都会非常有帮助.
c# ef-database-first sql-server-2012 entity-framework-5 visual-studio-2012
我有5个实体:
public class Album
{
public int Id { get; set; }
public string Title { get; set; }
public virtual List<AlbumArtist> AlbumArtists { get; set; }
public virtual List<Artist> Artists { get; set; }
public virtual List<Genre> Genres { get; set; }
public virtual List<Song> Songs { get; set; }
}
public class AlbumArtist
{
public int Id { get; set; }
public string Title { get; set; }
public virtual List<Album> Albums { get; set; }
public virtual …Run Code Online (Sandbox Code Playgroud) 我有这个模型(动物模型):
public int Id { get; set; }
public int AnimalSpecieId { get; set; }
public int AnimalBreedId { get; set; }
public Nullable<int> ProtectorId { get; set; }
public Nullable<int> OwnerId { get; set; }
public string Name { get; set; }
public virtual Owner Owner { get; set; }
public virtual Protector Protector { get; set; }
Run Code Online (Sandbox Code Playgroud)
保护器型号:
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; …Run Code Online (Sandbox Code Playgroud)