本文整理汇总了C#中DbContext.Update方法的典型用法代码示例。如果您正苦于以下问题:C# DbContext.Update方法的具体用法?C# DbContext.Update怎么用?C# DbContext.Update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DbContext
的用法示例。
在下文中一共展示了DbContext.Update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: It_throws_object_disposed_exception
public async void It_throws_object_disposed_exception()
{
var context = new DbContext(new DbContextOptions<DbContext>());
context.Dispose();
// methods (tests all paths)
Assert.Throws<ObjectDisposedException>(() => context.Add(new object()));
Assert.Throws<ObjectDisposedException>(() => context.Attach(new object()));
Assert.Throws<ObjectDisposedException>(() => context.Update(new object()));
Assert.Throws<ObjectDisposedException>(() => context.Remove(new object()));
Assert.Throws<ObjectDisposedException>(() => context.SaveChanges());
await Assert.ThrowsAsync<ObjectDisposedException>(() => context.SaveChangesAsync());
var methodCount = typeof(DbContext).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly).Count();
var expectedMethodCount = 27;
Assert.True(
methodCount == expectedMethodCount,
userMessage: $"Expected {expectedMethodCount} methods on DbContext but found {methodCount}. " +
"Update test to ensure all methods throw ObjectDisposedException after dispose.");
// getters
Assert.Throws<ObjectDisposedException>(() => context.ChangeTracker);
Assert.Throws<ObjectDisposedException>(() => context.Model);
var expectedProperties = new List<string> { "ChangeTracker", "Database", "Model" };
Assert.True(expectedProperties.SequenceEqual(
typeof(DbContext)
.GetProperties()
.Select(p => p.Name)
.OrderBy(s => s)
.ToList()),
userMessage: "Unexpected properties on DbContext. " +
"Update test to ensure all getters throw ObjectDisposedException after dispose.");
Assert.Throws<ObjectDisposedException>(() => ((IInfrastructure<IServiceProvider>)context).Instance);
}
示例2: Can_add_update_delete_end_to_end_using_partial_shadow_state
public async Task Can_add_update_delete_end_to_end_using_partial_shadow_state()
{
var model = new Model();
var customerType = new EntityType(typeof(Customer));
customerType.SetKey(customerType.AddProperty("Id", typeof(int), shadowProperty: false, concurrencyToken: false));
customerType.AddProperty("Name", typeof(string), shadowProperty: true, concurrencyToken: false);
model.AddEntityType(customerType);
var options = new DbContextOptions()
.UseModel(model)
.UseInMemoryStore();
var customer = new Customer { Id = 42 };
using (var context = new DbContext(options))
{
context.Add(customer);
// TODO: Better API for shadow state access
var customerEntry = context.ChangeTracker.Entry(customer).StateEntry;
customerEntry[customerType.GetProperty("Name")] = "Daenerys";
await context.SaveChangesAsync();
customerEntry[customerType.GetProperty("Name")] = "Changed!";
}
using (var context = new DbContext(options))
{
var customerFromStore = context.Set<Customer>().Single();
Assert.Equal(42, customerFromStore.Id);
Assert.Equal(
"Daenerys",
(string)context.ChangeTracker.Entry(customerFromStore).Property("Name").CurrentValue);
}
using (var context = new DbContext(options))
{
var customerEntry = context.ChangeTracker.Entry(customer).StateEntry;
customerEntry[customerType.GetProperty("Name")] = "Daenerys Targaryen";
context.Update(customer);
await context.SaveChangesAsync();
}
using (var context = new DbContext(options))
{
var customerFromStore = context.Set<Customer>().Single();
Assert.Equal(42, customerFromStore.Id);
Assert.Equal(
"Daenerys Targaryen",
(string)context.ChangeTracker.Entry(customerFromStore).Property("Name").CurrentValue);
}
using (var context = new DbContext(options))
{
context.Delete(customer);
await context.SaveChangesAsync();
}
using (var context = new DbContext(options))
{
Assert.Equal(0, context.Set<Customer>().Count());
}
}