yes, lazyloadingEnable and ProxyCreationEnabled are by default true. yes using lazyloading should be true for referencing the reference tables.
so
this.Configuration.LazyLoadingEnabled
= true;
this.Configuration.ProxyCreationEnabled = true;
both must be enabled true otherwise gives error. bydefault LazyLoadingEnabled is true because of all the related entities are loaded automatically.
var t = context.emps.Find(4);
as well
if any case :
this.Configuration.ProxyCreationEnabled = false;
also we can load the relavent entities using
var t = context.emps.Find(4);
context.Entry(t).Reference("Dept").Load(); // Proxy Creation
or
context.Entry(t).Reference(t=>t.Dept).Load(); // here Dept can't be a non-generic collection.
var s
=context.emps.Local;
context.emps.Add(new Employee { Ename = "rani",
EPhone = "7478", EmpDept = 2 });
context.SaveChanges();
using local properties we can able to track the changes at client when we add, delete, ...from a collection why because Local is Property which is of
ObservableCollection<TEntity> Local { get; }.
var s
=context.emps.Local; // Local return type is ObservableCollection. so we can easily track the changes of a collection at dynamically.
context.emps.Add(new Employee {
Ename = "rani", EPhone = "7478", EmpDept = 2 }); //1
var
d = context.emps.FirstOrDefault(k => k.Ename == "narayan");
d.Ename = "prasads"; //2
IEnumerable<DbEntityEntry<Employee>>
change =context.ChangeTracker.Entries<Employee>();
IEnumerator<DbEntityEntry<Employee>>
ier = change.GetEnumerator();
IEnumerable<string> currentval = new
List<string>();
IEnumerable<string> original = new
List<string>();
while (ier.MoveNext())
{
currentval=ier.Current.CurrentValues.PropertyNames;
original=ier.Current.OriginalValues.PropertyNames;
}
immediate window
change.count()
2
context.emps.Local[0]
{EFCodeFirstDemo.Employee}
Dept: null
Eid: 0
EmpDept: 2
Ename: "rani"
EPhone: "7478"
No comments:
Post a Comment