有人可以提供一些建议或指出一些可以帮助做出这个决定的博客/文章吗?代理对我来说似乎很陌生,我对使用它们犹豫不决.我喜欢通过在我的模型中使用虚拟属性来控制延迟加载的能力,但这几乎是我能看到的所有好处.我的应用程序是一个简单的MVC Web应用程序,当实体遇到更改状态时,我不需要将任何挂钩连接到上下文中.
无论如何,这是我现在非常有限的利弊列表,让我知道如果我没有任何这个.
优点
缺点
orm entity-framework dynamic-proxy ef-code-first entity-framework-4.1
最简单的例子,我得到一个集合并尝试通过Web API输出:
// GET api/items
public IEnumerable<Item> Get()
{
return MyContext.Items.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
'System.Data.Objects.ObjectQuery`1 [Dcip.Ams.BO.EquipmentWarranty]' 类型的对象 无法转换为类型
'System.Data.Entity.DbSet`1 [Dcip.Ams.BO.EquipmentWarranty]'
这是与新代理相关的一个非常常见的错误,我知道我可以通过设置来修复它:
MyContext.Configuration.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)
但这违背了我想要做的很多事情的目的.有没有更好的办法?
我使用Web api从数据库中检索数据.我只有一个表"tblMessage",并希望从该表中获取数据.
我设置了所有内容但是当我运行网站时.错误总是说
'ObjectContent`1'类型无法序列化内容类型'application/xml的响应主体
我在stackoverflow上阅读了一些帖子,说明错误可以通过告诉浏览器以json格式输出数据来修复.之后,错误就变成了
'ObjectContent`1'类型无法序列化内容类型'application/json的响应主体
我已尝试过以下帖子中的所有解决方案,但他们没有解决问题(浏览器报告相同的错误)
Web API错误:'ObjectContent`1'类型无法序列化内容类型的响应正文
Web API错误:'ObjectContent`1'类型无法序列化内容类型的响应正文
这个错误究竟是什么?
public interface IMessage
{
IQueryable<Message> GetAll();
}
public class Message
{
[Key]
public int i_StmID { get; set; }
public string vch_MsgString { get; set; }
}
public class EFDBContext : DbContext
{
public DbSet<Message> Message { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Message>().ToTable("tblMessage");
}
}
public class MessageRepository : IMessage
{
private EFDBContext context = new EFDBContext();
public IQueryable<Message> GetAll()
{
return …Run Code Online (Sandbox Code Playgroud)