我有一个基于Codefirst EF-4.1的程序.用户获取上下文并可以修改某些属性.用户完成后,我会快速完成
ChangeTracker.Entries().Any(e => e.State != EntityState.Unchanged);
Run Code Online (Sandbox Code Playgroud)
确定是否SaveChanges()需要a .如果我执行"SaveChanges()"调用,则所做的更改将持久保存到数据库中.
这适用于某些属性,不适用于其他属性.具体来说,它似乎适用于简单类型float和集合层次结构ObservableCollection.
难道我做错了什么?
是否可以*.mdf仅使用Entity Framework类的方法或属性来知道代码首先创建的数据库物理文件大小(以字节为单位)?如果可能的话,该怎么做?
我在ASP MVC 4中使用代码第一种方法与本地数据库(localdb\11.0v).我创建了我的实体
public class Service
{
public int ServiceID { get; set; }
public string ServiceName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的DbContext
public class EFDbContext : DbContext
{
public DbSet<Service> Service { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的存储库
public interface IServiceRepository
{
IQueryable<Service> Service { get; }
}
Run Code Online (Sandbox Code Playgroud)
接口
public class EFServiceRepository : IServiceRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<Service> Service
{
get { return context.Service; }
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Ninject进行绑定
ninjectKernel.Bind<IServiceRepository>().To<EFServiceRepository>();
Run Code Online (Sandbox Code Playgroud)
使用控制器引用ninject内核绑定
public ActionResult List()
{
return …Run Code Online (Sandbox Code Playgroud) 所以我在EF中有以下模型:
public class User: IEntity
{
public Guid Id { get; protected set; }
public string Email { get; protected set; }
internal User()
{
}
public User(Guid id, string email)
{
Id = id;
Email = email;
}
}
public class Tenant : IEntity
{
public Guid Id { get; protected set; }
public string Name { get; protected set; }
internal Tenant() { }
public Tenant(Guid id, string name)
{
Id = id;
Name = name;
}
} …Run Code Online (Sandbox Code Playgroud) 我正在关注本教程。
添加了Rating属性,并且在运行“ update-database”时出现此错误:
尝试恢复到以前的迁移,但是这表示没有迁移作为最新数据库应用。删除数据库表并重新运行迁移,但仍然可以实现。当我添加另一个迁移之后,UP和DOWN方法为空。有人知道吗?谢谢
我最近在 .NET Core 3.1 中创建了一个 Web API 项目,并使用代码优先方法实现了 Entity Framework Core 。我的每个模型都像这样引用其他模型:
public class Condominium
{
public int Id { get; set; }
public Address Address { get; set; }
public int Levels { get; set; }
public string Description { get; set; }
public CondominiumType CondominiumType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
正如你在这个例子中看到的,我指的是 Address 和 CondominiumType 而不使用引用 Id。迁移数据库时,Entity Framework 将创建相应的外键。
当我必须添加带有新地址的新公寓时,这非常有效,但是当我想添加现有地址或公寓类型时遇到问题。
当我将一个对象传递给具有已添加到数据库中的 ID 的上下文时,程序会抛出异常,因为我违反了表的 UNIQUE 约束。我知道我可以通过添加类似这样的引用键来解决这个问题
public class Condominium
{
public int Id { get; set; …Run Code Online (Sandbox Code Playgroud)