【发布时间】:2019-12-24 08:52:43
【问题描述】:
我正在尝试使用 WCF 服务中的 Entity Framework 6.2.0 更新和添加新数据到我的 SQL Server 数据库中,然后在我的应用程序中使用该服务。
成功获取数据后,无法添加或更新数据。我正在使用此处显示的方法进行更新。我在其他项目中使用过相同的方法并且它曾经有效。我在这里做错了什么?
响应:有趣的是,我得到 1 作为回报,这意味着数据已更新。但实际上数据并没有更新!
public int EditSaveCategory(Category category)
{
try
{
int r = 0;
using (Intelliventory_DBEntities context = new Intelliventory_DBEntities())
{
var cat = context.Categories.FirstOrDefault(x => x.CategoryID == category.CategoryID);
if (cat != null)
{
cat.CategoryName = category.CategoryName;
r = context.SaveChanges();
// return 1;
}
}
return r;
}
catch (Exception e)
{
throw new FaultException<IntelliWcfException>(GetIntelliWcfException(e));
}
}
从应用程序调用:
var cat = new Category
{
CategoryName = SelectedCategory.CategoryName.Trim(),
CategoryID = SelectedCategory.CategoryID
};
_client.EditSaveCategoryAsync(cat);
回应:
private void ClientOnEditSaveCategoryCompleted(object sender, EditSaveCategoryCompletedEventArgs e)
{
try
{
if (e.Error == null)
{
var response = e.Result;
if (response == 1)
{
Growl.SuccessGlobal("Category Saved !");
}
else if (response == 2)
{
Growl.ErrorGlobal("Category Not Found !");
}
else
{
Growl.ErrorGlobal("Error !");
}
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
throw;
}
}
Context.cs
public partial class Intelliventory_DBEntities : DbContext
{
public Intelliventory_DBEntities()
: base("name=Intelliventory_DBEntities")
{
this.Configuration.ProxyCreationEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<AdminUser> AdminUsers { get; set; }
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<Customer> Customers { get; set; }
public virtual DbSet<Employee> Employees { get; set; }
public virtual DbSet<InvoiceItem> InvoiceItems { get; set; }
public virtual DbSet<Invoice> Invoices { get; set; }
public virtual DbSet<Product> Products { get; set; }
public virtual DbSet<ProductsReceived> ProductsReceiveds { get; set; }
public virtual DbSet<ProductsRequested> ProductsRequesteds { get; set; }
public virtual DbSet<ProductsStock> ProductsStocks { get; set; }
public virtual DbSet<PurchaseInvoice> PurchaseInvoices { get; set; }
public virtual DbSet<PurchaseOrder> PurchaseOrders { get; set; }
public virtual DbSet<Supplier> Suppliers { get; set; }
public virtual DbSet<sysdiagram> sysdiagrams { get; set; }
public virtual DbSet<TodoItem> TodoItems { get; set; }
}
【问题讨论】:
-
如何确认数据没有更新?
-
@mm8 谢谢先生的光临!我正在检查数据库,在类别表中。我很困惑,一点也不例外,成功消息仍然数据没有更新,甚至没有添加。
-
您可能正在查找错误的数据库。你的连接字符串的值是多少?
-
@mm8 我正在做一些非常愚蠢的事情,甚至无法分辨:(但感谢您的时间先生!
标签: c# wpf entity-framework wcf