diff --git a/Serenity.Data.Entity/Extensions/RowExtensions.cs b/Serenity.Data.Entity/Extensions/RowExtensions.cs
index 01d68934d1..6b68f6fe6a 100644
--- a/Serenity.Data.Entity/Extensions/RowExtensions.cs
+++ b/Serenity.Data.Entity/Extensions/RowExtensions.cs
@@ -1,37 +1,32 @@
-using Serenity.Data.Mapping;
-using System;
+using System;
using System.Globalization;
namespace Serenity.Data
{
public static class RowExtensions
{
- ///
- /// türevi nesnenin bir kopyasını çıkarır
- ///
- /// Bu fonksiyon bir extension metodu olduğundan direk olarak row.Clone() şeklinde
- /// kullanılabilir. metodu da bir row un kopyasını çıkarır, fakat
- /// sonuç Row türündendir, tekrar asıl Row türevine typecast yapmak gerekir. Bu yardımcı
- /// fonksiyonla explicit olarak typecast yapmaya gerek kalmaz.
- ///
- /// Row'dan türemiş herhangi bir Row sınıfı
- ///
- /// Kopyalanacak Row türevi nesne
- ///
- /// Fonksiyonun uygulandığı Row türevinin, bir kopyası (sadece alan değerleri)
public static TRow Clone(this TRow row) where TRow : Row
{
return (TRow)(row.CloneRow());
}
- public static void ApplyDefaultValues(this Row row)
+ public static TRow ApplyDefaultValues(this TRow row, bool unassignedOnly = false)
+ where TRow: Row
{
+ if (row == null)
+ throw new ArgumentNullException("row");
+
foreach (var field in row.GetFields())
{
+ if (unassignedOnly && row.IsAssigned(field))
+ continue;
+
var value = field.DefaultValue;
if (value != null)
field.AsObject(row, field.ConvertValue(value, CultureInfo.InvariantCulture));
}
+
+ return row;
}
public static TRowFields Init(this TRowFields rowFields)