函数签名后的where语句的C#用法

时间:2014-07-30 04:15:44

标签: c# generics

private static void ApplyChanges<TEntity>(TEntity root) where TEntity : class, IObjectWithState
        {
            using (var context = new BreakAwayContext())
            {
                context.Set<TEntity>().Add(root);
                CheckForEntitiesWithoutStateInterface(context);

                foreach (var entry in context.ChangeTracker.Entries<IObjectWithState>())
                {
                    IObjectWithState stateInfo = entry.Entity;
                    entry.State = ConvertState(stateInfo.State);
                    if (stateInfo.State == State.Unchanged)
                    {
                        var databaseValues = entry.GetDatabaseValues();
                        entry.OriginalValues.SetValues(databaseValues);
                    }
                }

                context.SaveChanges();
            }
        } 

我正在阅读一本关于实体框架的书,并面对如上所述的功能声明。 正如我的理解; where子句定义TEntity的类型。因此,如果我们选择定义TEntity的类型,为什么不使用强类型参数而不是使用泛型?

我错过了什么吗?什么是用于此类声明的术语?

0 个答案:

没有答案