ObjectStateManager Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Varlık türü örnekleri ve ilişki örnekleri için nesne durumunu ve kimlik yönetimini korur.
public ref class ObjectStateManager
public class ObjectStateManager
type ObjectStateManager = class
Public Class ObjectStateManager
- Devralma
-
ObjectStateManager
Örnekler
Aşağıdaki örnek öğesinden ObjectContext öğesini alır ObjectStateManager ve bağlamdaki bir nesneye erişmek için durum yöneticisini kullanır.
int orderId = 43680;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
ObjectStateManager objectStateManager = context.ObjectStateManager;
ObjectStateEntry stateEntry = null;
var order = (from o in context.SalesOrderHeaders
where o.SalesOrderID == orderId
select o).First();
// Attempts to retrieve ObjectStateEntry for the given EntityKey.
bool isPresent = objectStateManager.TryGetObjectStateEntry(((IEntityWithKey)order).EntityKey, out stateEntry);
if (isPresent)
{
Console.WriteLine("The entity was found");
}
}
Aşağıdaki örnek, bir nesneyi varlık anahtarına göre almak için döndürülen ObjectStateManager üzerindeki yöntemini kullanırTryGetObjectStateEntry(EntityKey, ObjectStateEntry).
private static void ApplyItemUpdates(SalesOrderDetail originalItem,
SalesOrderDetail updatedItem)
{
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
context.SalesOrderDetails.Attach(updatedItem);
// Check if the ID is 0, if it is the item is new.
// In this case we need to chage the state to Added.
if (updatedItem.SalesOrderDetailID == 0)
{
// Because the ID is generated by the database we do not need to
// set updatedItem.SalesOrderDetailID.
context.ObjectStateManager.ChangeObjectState(updatedItem, System.Data.EntityState.Added);
}
else
{
// If the SalesOrderDetailID is not 0, then the item is not new
// and needs to be updated. Because we already added the
// updated object to the context we need to apply the original values.
// If we attached originalItem to the context
// we would need to apply the current values:
// context.ApplyCurrentValues("SalesOrderDetails", updatedItem);
// Applying current or original values, changes the state
// of the attached object to Modified.
context.ApplyOriginalValues("SalesOrderDetails", originalItem);
}
context.SaveChanges();
}
}
Açıklamalar
ObjectStateManager sorgu sonuçlarını izler ve çakışan birden çok sorgu sonucunu birleştirmek için mantık sağlar. Ayrıca, kullanıcı nesneleri eklediğinde, sildiğinde veya değiştirdiğinde bellek içi değişiklik izleme gerçekleştirir ve güncelleştirmeler için değişiklik kümesini sağlar. Bu değişiklik kümesi, değişiklik işlemcisi tarafından değişiklikleri kalıcı hale getirmek için kullanılır.
Bu sınıf genellikle tarafından ObjectContext kullanılır ve doğrudan uygulamalarda kullanılmaz.
Oluşturucular
ObjectStateManager(MetadataWorkspace) |
ObjectStateManager sınıfının yeni bir örneğini başlatır. |
Özellikler
MetadataWorkspace |
Bu durum yöneticisiyle ilişkilendirileni MetadataWorkspace alır. |
Yöntemler
ChangeObjectState(Object, EntityState) |
Belirli bir nesnenin ObjectStateEntry durumunu belirtilen |
ChangeRelationshipState(Object, Object, String, EntityState) |
İki ilgili nesneye ve gezinti özelliğinin adına göre belirtilen iki varlık nesnesi arasındaki ilişkinin durumunu değiştirir. |
ChangeRelationshipState(Object, Object, String, String, EntityState) |
İlişkili iki nesneye ve ilişkinin özelliklerine göre belirtilen iki varlık nesnesi arasındaki ilişkinin durumunu değiştirir. |
ChangeRelationshipState<TEntity>(TEntity, Object, Expression<Func<TEntity,Object>>, EntityState) |
İki ilişkili nesne ve gezinti özelliğini tanımlayan bir LINQ ifadesi temelinde belirtilen iki varlık nesnesi arasındaki ilişkinin durumunu değiştirir. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetObjectStateEntries(EntityState) |
Nesneler veya belirtilen durumla ilişkiler için bir nesne koleksiyonu ObjectStateEntry döndürür. |
GetObjectStateEntry(EntityKey) |
Belirtilen anahtarla nesne veya ilişki girdisi için bir ObjectStateEntry döndürür. |
GetObjectStateEntry(Object) |
Belirtilen nesne için bir ObjectStateEntry döndürür. |
GetRelationshipManager(Object) |
RelationshipManager Belirtilen nesne tarafından kullanılan değerini döndürür. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
TryGetObjectStateEntry(EntityKey, ObjectStateEntry) |
Belirtilen EntityKeyile nesne veya ilişki için karşılık gelen ObjectStateEntry öğesini almaya çalışır. |
TryGetObjectStateEntry(Object, ObjectStateEntry) |
Belirtilen Objectöğesine karşılık gelen ObjectStateEntry öğesini almaya çalışır. |
TryGetRelationshipManager(Object, RelationshipManager) |
RelationshipManager Belirtilen nesne tarafından kullanılan değerini döndürür. |
Ekinlikler
ObjectStateManagerChanged |
Varlıklar durum yöneticisine eklendiğinde veya durum yöneticisinden kaldırıldığında gerçekleşir. |