• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# DbPropertyValues类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中DbPropertyValues的典型用法代码示例。如果您正苦于以下问题:C# DbPropertyValues类的具体用法?C# DbPropertyValues怎么用?C# DbPropertyValues使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DbPropertyValues类属于命名空间,在下文中一共展示了DbPropertyValues类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: DetectUpdates

 /// <summary>
 /// Detects any updates on specified entity and tracks them via AlertManager.TrackablePropertyUpdated alert.
 /// </summary>
 /// <param name="entity">entity</param>
 /// <param name="originalValues">original properties values</param>
 /// <param name="currentValues">current properties values</param>
 /// <param name="properties">properties to track</param>
 /// <param name="updateCallback">action to call when update is detected. If it is null it defaults to AlertManager.TrackablePropertyChanged.</param>
 /// <remarks>
 /// This method would likely be called from <see cref="IModifyHook.OnModify">OnModify</see> implementation to track properties. 
 /// For tracking enum typed (state) properties see <see cref="DetectStateUpdates">DetectStateUpdates</see> method.
 /// </remarks>
 public static void DetectUpdates(this IBaseDO entity, 
     DbPropertyValues originalValues, DbPropertyValues currentValues, PropertyInfo[] properties,
     Action<string, object, PropertyInfo> updateCallback = null)
 {
     if (properties == null || properties.Length == 0)
         return;
     if (updateCallback == null)
     {
         updateCallback =
             (entityName, idValue, property) =>
             AlertManager.TrackablePropertyUpdated(entityName, property.Name, idValue, currentValues[property.Name]);
     }
     var type = entity.GetType();
     var idProperty = type.GetProperty("Id");
     var id = idProperty != null ? idProperty.GetValue(entity) : null;
     foreach (var property in properties)
     {
         if (!MiscUtils.AreEqual(originalValues[property.Name], currentValues[property.Name]))
         {
             string entityName;
             if (type.Name.EndsWith("DO", StringComparison.Ordinal))
                 entityName = type.Name.Remove(type.Name.Length - 2);
             else if (type.BaseType != null && type.BaseType.Name.EndsWith("DO", StringComparison.Ordinal))
                 entityName = type.BaseType.Name.Remove(type.BaseType.Name.Length - 2);
             else
                 entityName = type.Name;
             updateCallback(entityName, id, property);
         }
     }
 }
开发者ID:alexed1,项目名称:dtrack,代码行数:42,代码来源:EntityExtensions.cs


示例2: Non_Generic_DbPropertyValues_uses_ToObject_on_InternalPropertyValues

        public void Non_Generic_DbPropertyValues_uses_ToObject_on_InternalPropertyValues()
        {
            var properties = new Dictionary<string, object> { { "Id", 1 } };
            var values = new DbPropertyValues(new TestInternalPropertyValues<FakeTypeWithProps>(properties));

            var clone = (FakeTypeWithProps)values.ToObject();

            Assert.Equal(1, clone.Id);
        }
开发者ID:WangWilliam,项目名称:EntityFramework5,代码行数:9,代码来源:DbPropertyValuesTests.cs


示例3: OnModify

        public override void OnModify(DbPropertyValues originalValues, DbPropertyValues currentValues)
        {
            base.OnModify(originalValues, currentValues);

            var reflectionHelper = new ReflectionHelper<IncidentDO>();
            var priorityPropertyName = reflectionHelper.GetPropertyName(i => i.Priority);
            if (!MiscUtils.AreEqual(originalValues[priorityPropertyName], currentValues[priorityPropertyName])
                && IsHighPriority)
            {
                AlertManager.HighPriorityIncidentCreated(Id);
            }
        }
开发者ID:alexed1,项目名称:dtrack,代码行数:12,代码来源:IncidentDO.cs


示例4: PrintPropertyValues

 /// <summary>
 /// 记录帮助类
 /// </summary>
 private void PrintPropertyValues(DbPropertyValues values, IEnumerable<string> propertiesToPrint, int indent = 1)
 {
     foreach (var propertyName in propertiesToPrint)
     {
         var value = values[propertyName];
         if (value is DbPropertyValues)
         {
             Console.WriteLine("{0}- Complex Property: {1}", string.Empty.PadLeft(indent), propertyName);
             var complexPropertyValues = (DbPropertyValues)value;
             PrintPropertyValues(complexPropertyValues, complexPropertyValues.PropertyNames, indent + 1);
         }
         else
         {
             Console.WriteLine("{0}- {1}: {2}", string.Empty.PadLeft(indent), propertyName, values[propertyName]);
         }
     }
 }
开发者ID:TGHGH,项目名称:MesSolution,代码行数:20,代码来源:BreakAwayContext.cs


示例5: WritePropertyValues

 public static void WritePropertyValues(DbPropertyValues values, int indent = 1)
 {
     foreach (string propertyName in values.PropertyNames)
     {
         var value = values[propertyName];
         if (value is DbPropertyValues)
         {
             Console.WriteLine("{0} - Complex Property: {1}",
                               string.Empty.PadLeft(indent),
                               propertyName);
             WritePropertyValues((DbPropertyValues)value, indent + 1);
         }
         else
         {
             Console.WriteLine("{0} - {1}: {2}",
                 string.Empty.PadLeft(indent),
                 propertyName,values[propertyName]);
         }
     }
 }
开发者ID:JeremySBrown,项目名称:DbContextPresentation,代码行数:20,代码来源:TestHelpers.cs


示例6: DetectStateUpdates

 /// <summary>
 /// Detects any updates on specified entity state properties.
 /// </summary>
 /// <param name="entity">entity</param>
 /// <param name="originalValues">original properties values</param>
 /// <param name="currentValues">current properties values</param>
 public static void DetectStateUpdates(this IBaseDO entity,
     DbPropertyValues originalValues, DbPropertyValues currentValues)
 {
     var stateProperties = entity.GetStateProperties().ToArray();
     if (stateProperties.Length > 0)
     {
         entity.DetectUpdates(originalValues, currentValues, stateProperties,
                              (entityName, idValue, stateProperty) =>
                                  {
                                      var stateTemplateType =
                                          ReflectionHelper.ForeignKeyNavitationProperty(entity, stateProperty).
                                              PropertyType;
                                      var stateType =
                                          GetGenericInterface(stateTemplateType, typeof (IStateTemplate<>))
                                              .GetGenericArguments()[0];
                                      var stateName = stateType.Name;
                                      var stateKey = currentValues[stateProperty.Name];
                                      var stateValue = stateKey != null
                                                           ? stateType.GetFields().Single(f => Equals(f.GetValue(entity), stateKey)).Name
                                                           : null;
                                      AlertManager.EntityStateChanged(entityName, idValue, stateName, stateValue);
                                  });
     }
 }
开发者ID:alexed1,项目名称:dtrack,代码行数:30,代码来源:EntityExtensions.cs


示例7: Calling_SetValues_with_dictionary_of_derived_type_works

        public void Calling_SetValues_with_dictionary_of_derived_type_works()
        {
            var fromProperties = new Dictionary<string, object>
                                     {
                                         { "Id", 1 }
                                     };
            var fromValues = new DbPropertyValues(new TestInternalPropertyValues<FakeDerivedTypeWithProps>(fromProperties));

            var toProperties = new Dictionary<string, object>
                                   {
                                       { "Id", 0 }
                                   };
            var toValues = new DbPropertyValues(new TestInternalPropertyValues<FakeTypeWithProps>(toProperties));

            toValues.SetValues(fromValues);

            Assert.Equal(1, toValues["Id"]);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:18,代码来源:DbPropertyValuesTests.cs


示例8: Non_Generic_DbPropertyValues_SetValues_with_a_dictionary_works_on_the_underlying_dictionary

        public void Non_Generic_DbPropertyValues_SetValues_with_a_dictionary_works_on_the_underlying_dictionary()
        {
            var fromValues = new DbPropertyValues(CreateSimpleValues());
            fromValues["Id"] = 1;

            var toValues = new DbPropertyValues(CreateSimpleValues());

            toValues.SetValues(fromValues);

            Assert.Equal(1, toValues["Id"]);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:11,代码来源:DbPropertyValuesTests.cs


示例9: Attempt_to_copy_values_from_null_dictionary_on_non_generic_DbPropertyValues_throws

        public void Attempt_to_copy_values_from_null_dictionary_on_non_generic_DbPropertyValues_throws()
        {
            var values = new DbPropertyValues(new TestInternalPropertyValues<FakeTypeWithProps>());

            Assert.Equal("propertyValues", Assert.Throws<ArgumentNullException>(() => values.SetValues(null)).ParamName);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:6,代码来源:DbPropertyValuesTests.cs


示例10: Calling_SetValues_with_instance_of_derived_type_works

        public void Calling_SetValues_with_instance_of_derived_type_works()
        {
            var properties = new Dictionary<string, object>
                                 {
                                     { "Id", 0 }
                                 };
            var values = new DbPropertyValues(new TestInternalPropertyValues<FakeTypeWithProps>(properties));

            values.SetValues(
                new FakeDerivedTypeWithProps
                    {
                        Id = 1
                    });

            Assert.Equal(1, values["Id"]);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:16,代码来源:DbPropertyValuesTests.cs


示例11: PrintPropertyValues

 private static void PrintPropertyValues(DbPropertyValues values)
 {
     foreach (var propertyName in values.PropertyNames)
     {
         if (propertyName.ToString().Equals("userpwd"))
             Console.WriteLine(" - {0}: {1}", propertyName, values[propertyName]);
     }
 }
开发者ID:TGHGH,项目名称:MesSolution,代码行数:8,代码来源:Program.cs


示例12: GetLogContent

 //获取要记录的日志内容
 private string GetLogContent(DbPropertyValues values, IEnumerable<string> properties)
 {
     Dictionary<string, string> result = new Dictionary<string, string>();
     foreach (var propertyName in properties)
     {
         var value = values[propertyName];
         if (value is DbPropertyValues)
         {
             var complexPropertyValues = (DbPropertyValues)value;
             result.Add(propertyName, GetLogContent(complexPropertyValues, complexPropertyValues.PropertyNames));
         }
         else
         {
             result.Add(propertyName, (value ?? "").ToString());
         }
     }
     return result.ToJson();
 }
开发者ID:vinlon,项目名称:joyvio,代码行数:19,代码来源:WSICmsContextDB.cs


示例13: ResolverConflitos

 private static DbPropertyValues ResolverConflitos(DbPropertyValues dbPropertyValues1, DbPropertyValues dbPropertyValues2, DbPropertyValues dbValues)
 {
     throw new NotImplementedException();
 }
开发者ID:RASMiranda,项目名称:com.isel.si1314.asi,代码行数:4,代码来源:Program.cs


示例14: ClientChooses

 private void ClientChooses(DbPropertyValues current, DbPropertyValues other, DbPropertyValues resolved)
 {
     resolved["FirstName"] = other["FirstName"];
     resolved["LastName"] = current["LastName"];
 }
开发者ID:riezebosch,项目名称:adonetb,代码行数:5,代码来源:UnitTest1.cs


示例15: Complex_values_cannot_be_set_to_actual_complex_object_instance_in_a_property_dictionary

        public void Complex_values_cannot_be_set_to_actual_complex_object_instance_in_a_property_dictionary()
        {
            var values = new DbPropertyValues(CreateSimpleValues());

            Assert.Equal(
                Strings.DbPropertyValues_AttemptToSetNonValuesOnComplexProperty,
                Assert.Throws<ArgumentException>(() => values["NestedObject"] = new FakeTypeWithProps()).Message);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:8,代码来源:DbPropertyValuesTests.cs


示例16: SettingNestedValuesTest

 public void Complex_values_can_be_set_at_the_complex_object_level_into_a_non_generic_dictionary_using_a_non_generic_dictionary()
 {
     SettingNestedValuesTest(
         (values, nestedValues) => new DbPropertyValues(values)["NestedObject"] = new DbPropertyValues(nestedValues));
 }
开发者ID:junxy,项目名称:entityframework,代码行数:5,代码来源:DbPropertyValuesTests.cs


示例17: Reading_value_from_non_generic_DbPropertyValues_for_an_empty_property_name_throws

        public void Reading_value_from_non_generic_DbPropertyValues_for_an_empty_property_name_throws()
        {
            var values = new DbPropertyValues(CreateSimpleValues());

            Assert.Equal(
                Strings.ArgumentIsNullOrWhitespace("propertyName"), Assert.Throws<ArgumentException>(() => { var _ = values[""]; }).Message);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:7,代码来源:DbPropertyValuesTests.cs


示例18: HaveUserResolveConcurrency

 private void HaveUserResolveConcurrency(DbPropertyValues currentValues,
                                         DbPropertyValues databaseValues,
                                         DbPropertyValues resolvedValues)
 {
 }
开发者ID:dmoelgaard,项目名称:semester-projects,代码行数:5,代码来源:CustomerRepository.cs


示例19: SetValues_when_nested_dictionary_is_for_wrong_type_throws

        public void SetValues_when_nested_dictionary_is_for_wrong_type_throws()
        {
            var fromProperties = new Dictionary<string, object>
                                     {
                                         { "Id", 1 }
                                     };
            var fromValues = new DbPropertyValues(new TestInternalPropertyValues<FakeTypeWithProps>(fromProperties));

            var toProperties = new Dictionary<string, object>
                                   {
                                       { "Id", 0 }
                                   };
            var toValues = new DbPropertyValues(new TestInternalPropertyValues<FakeDerivedTypeWithProps>(toProperties));

            Assert.Equal(
                Strings.DbPropertyValues_AttemptToSetValuesFromWrongType(
                    typeof(FakeTypeWithProps).Name, typeof(FakeDerivedTypeWithProps).Name),
                Assert.Throws<ArgumentException>(() => toValues.SetValues(fromValues)).Message);
        }
开发者ID:junxy,项目名称:entityframework,代码行数:19,代码来源:DbPropertyValuesTests.cs


示例20: TestScalarOriginalValue

        private void TestScalarOriginalValue(DbEntityEntry entityEntry, DbPropertyEntry<Building, string> propertyEntry,
                                             Type objectType, DbPropertyValues originalValues, string initialValue)
        {
            var initialState = entityEntry.State;

            if (initialState == EntityState.Added)
            {
                Assert.Throws<InvalidOperationException>(() => { var _ = propertyEntry.OriginalValue; }).ValidateMessage
                    ("DbPropertyValues_CannotGetValuesForState", "OriginalValues", "Added");
                Assert.Throws<InvalidOperationException>(() => propertyEntry.OriginalValue = "").ValidateMessage(
                    "DbPropertyValues_CannotGetValuesForState", "OriginalValues", "Added");
                return;
            }

            if (initialState == EntityState.Detached)
            {
                Assert.Throws<InvalidOperationException>(() => { var _ = propertyEntry.OriginalValue; }).ValidateMessage
                    ("DbPropertyEntry_NotSupportedForDetached", "OriginalValue", propertyEntry.Name,
                     entityEntry.Entity.GetType().Name);
                Assert.Throws<InvalidOperationException>(() => propertyEntry.OriginalValue = "").ValidateMessage(
                    "DbPropertyEntry_NotSupportedForDetached", "OriginalValue", propertyEntry.Name,
                    entityEntry.Entity.GetType().Name);
                return;
            }

            Assert.Equal(initialState == EntityState.Modified, propertyEntry.IsModified);
            Assert.Equal(initialValue, propertyEntry.OriginalValue);

            // Set to same value; prop should not get marked as modified
            propertyEntry.OriginalValue = initialValue;
            Assert.Equal(initialState == EntityState.Modified, propertyEntry.IsModified);
            Assert.Equal(initialState, entityEntry.State);

            // Set to new value; prop marked as modified
            propertyEntry.OriginalValue = "New Value";
            Assert.Equal("New Value", propertyEntry.OriginalValue);
            CheckPropertyIsModified(entityEntry, propertyEntry, initialState);

            // New value reflected in record
            Assert.Equal("New Value", originalValues[propertyEntry.Name]);

            // Change record; new value reflected in entry
            originalValues[propertyEntry.Name] = "Another Value";
            Assert.Equal("Another Value", propertyEntry.OriginalValue);

            // Set to null
            propertyEntry.OriginalValue = null;
            Assert.Equal(null, propertyEntry.OriginalValue);
        }
开发者ID:jimmy00784,项目名称:entityframework,代码行数:49,代码来源:PropertyApiTests.cs



注:本文中的DbPropertyValues类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# DbProviderManifest类代码示例发布时间:2022-05-24
下一篇:
C# DbPropertyExpression类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap