Đặt giá trị mặc định của Thuộc tính DateTime thành DateTime. Bây giờ bên trong System.ComponentModel Attrbute Giá trị mặc định


77
15
Hoàng Xuân Hạnh
11 năm trước

Có ai biết làm thế nào tôi có thể chỉ định giá trị Mặc định cho thuộc tính DateTime bằng cách sử dụng Thuộc tính System.ComponentModel DefaultValue không?

ví dụ tôi thử cái này:

[DefaultValue(typeof(DateTime),DateTime.Now.ToString("yyyy-MM-dd"))]
public DateTime DateCreated { get; set; }

Và nó hy vọng giá trị sẽ là một biểu thức không đổi.

Đây là trong bối cảnh sử dụng với ASP.NET Dynamic Data. Tôi không muốn giàn giáo cột DateCreated mà chỉ cung cấp DateTime. Bây giờ nếu nó không có mặt. Tôi đang sử dụng Entity Framework làm Lớp dữ liệu của mình

Chúc mừng

Andrew

Hữu ích 77 Yêu thích 15 Chia sẻ Viết bình luận 0
Không hữu ích

19 Trả lời


81
Đặng Ðức Quang
11 năm trước

Bạn không thể làm điều này với một thuộc tính vì chúng chỉ là thông tin meta được tạo tại thời điểm biên dịch. Chỉ cần thêm mã vào hàm tạo để khởi tạo ngày nếu được yêu cầu, tạo trình kích hoạt và xử lý các giá trị bị thiếu trong cơ sở dữ liệu hoặc triển khai getter theo cách trả về DateTime. Bây giờ nếu trường sao lưu không được khởi tạo.

public DateTime DateCreated
{
   get
   {
      return this.dateCreated.HasValue
         ? this.dateCreated.Value
         : DateTime.Now;
   }

   set { this.dateCreated = value; }
}

private DateTime? dateCreated = null;
Hữu ích 81 Trả lời hay nhất Chia sẻ Viết bình luận 5
Không hữu ích

Một getphần có thể được đơn giản hóa thành:return dateCreated ?? DateTime.Now;

Hữu ích 7 · Không hữu ích · Trả lời 0

Cảm ơn bạn, trước khi bạn chỉnh sửa, tôi đã đi một con đường khác và chặn người cài đặt. Chúc mừng sự giúp đỡ :-)

Hữu ích 1 · Không hữu ích · Trả lời 0

@zHs Điều này làm việc rất tốt cho tôi khi sử dụng Cơ sở dữ liệu đầu tiên với Khung thực thể.

Hữu ích 1 · Không hữu ích · Trả lời 0

Bây giờ tôi đã thực hiện ví dụ của bạn cảm ơn thời gian của bạn

Hữu ích 0 · Không hữu ích · Trả lời 0

Giải pháp này có thể là một vấn đề trong trường hợp bạn muốn các lớp của mình là POCO. Trong trường hợp của tôi, lớp của tôi phải rõ ràng như lớp POCO sẽ được chuyển qua WCF.

Hữu ích 0 · Không hữu ích · Trả lời 0

19
Nguyễn Thu Minh
5 năm trước

Không có lý do gì tôi có thể đưa ra rằng không nên thực hiện thông qua một thuộc tính. Nó có thể nằm trong hồ sơ tồn đọng của Microsoft. Ai biết.

Giải pháp tốt nhất tôi đã tìm thấy là sử dụng tham số defaultValueSql trong lần di chuyển mã đầu tiên.

CreateTable(
    "dbo.SomeTable",
    c => new
        {
            TheDateField = c.DateTime(defaultValueSql: "GETDATE()")
        });

Tôi không thích giải pháp tham chiếu thường đặt nó trong hàm tạo của lớp thực thể bởi vì nếu bất kỳ thứ gì ngoài Entity Framework dính một bản ghi trong bảng đó, trường ngày sẽ không nhận được giá trị mặc định. Và ý tưởng sử dụng một kích hoạt để xử lý trường hợp đó có vẻ sai đối với tôi.

Hữu ích 19 Chia sẻ Viết bình luận 2
Không hữu ích
Hữu ích 0 · Không hữu ích · Trả lời 0

trong trường hợp thay đổi và thêm nullable, hãy sử dụng AddColumn ("dbo.table", "created", c => c.DateTime (nullable: true, defaultValueSql: "getdate ()"));

Hữu ích 0 · Không hữu ích · Trả lời 0

18
Võ Ðình Quảng
3 năm trước

Thêm bên dưới vào thuộc tính DateTime

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
Hữu ích 18 Chia sẻ Viết bình luận 3
Không hữu ích

.Computing dành cho các hành động Thêm và Cập nhật. Sử dụng .Identity cho Thêm.

Hữu ích 2 · Không hữu ích · Trả lời 0

Đây thực sự là những gì tôi đang tìm kiếm và nó sẽ tăng lên. Nhiều câu trả lời khác thêm ngày hiện tại khi chèn một thực thể, tuy nhiên nó không ảnh hưởng đến lược đồ (nghĩa là tạo giá trị mặc định getdate ()). Vấn đề đối với tôi là khi tôi muốn thêm một bản ghi trực tiếp vào bảng (sử dụng SQL), tôi phải cung cấp ngày (hoặc để lại NULL). Đây là một giải pháp tốt hơn nhiều. Cảm ơn.

Hữu ích 1 · Không hữu ích · Trả lời 0

Câu trả lời hay nhất cho đến nay: cần thêm vào một tham chiếu đến System.ComponentModel.DataAnnotations.Schema nên được thêm vào cơ sở dữ liệu Chú thích chung

Hữu ích 0 · Không hữu ích · Trả lời 0

10
Lý Nam Việt
8 năm trước

Có thể và khá đơn giản:

cho DateTime.MinValue

[System.ComponentModel.DefaultValue(typeof(DateTime), "")]

đối với bất kỳ giá trị nào khác làm đối số cuối cùng của DefaultValueAttributechuỗi xác định biểu thị giá trị DateTime mong muốn.

Giá trị này phải là biểu thức không đổi và được yêu cầu để tạo đối tượng ( DateTime) bằng cách sử dụng TypeConverter.

Hữu ích 10 Chia sẻ Viết bình luận 0
Không hữu ích

8
Hồ Ðồng Khánh
1 năm trước

Tôi đã thử nghiệm điều này trên lõi EF 2.1

Ở đây bạn không thể sử dụng Công ước hoặc Chú thích dữ liệu. Bạn phải sử dụng API thông thạo .

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Created)
            .HasDefaultValueSql("getdate()");
    }
}

Tài liệu chính thức

Hữu ích 8 Chia sẻ Viết bình luận 0
Không hữu ích

6
Dương Thanh Hường
9 năm trước

Một giải pháp đơn giản nếu bạn đang sử dụng Entity Framework là thêm một lớp partical và định nghĩa một hàm tạo cho thực thể vì khung không xác định một. Ví dụ: nếu bạn có một thực thể có tên Ví dụ, bạn sẽ đặt đoạn mã sau vào một tệp riêng biệt.

namespace EntityExample
{
    public partial class Example : EntityObject
    {
        public Example()
        {
            // Initialize certain default values here.
            this._DateCreated = DateTime.Now;
        }
    }
}
Hữu ích 6 Chia sẻ Viết bình luận 2
Không hữu ích

Đây là cách tôi làm, cho đến khi tôi nhận ra rằng việc thêm một thuộc tính phức tạp vào thực thể của mình sẽ khiến cho EF tạo ra một hàm tạo mặc định, khiến tôi không có cách nào để tự viết ...

Hữu ích 1 · Không hữu ích · Trả lời 0

Đây là giải pháp thanh lịch nhất (và có lẽ cũng là dự định) cho vấn đề này. Nhưng điều này là giả sử mọi người đang sử dụng Mã EF đầu tiên.

Hữu ích 0 · Không hữu ích · Trả lời 0

5
Tạ Sơn Tùng
8 năm trước

Tôi nghĩ giải pháp đơn giản nhất là đặt

Created DATETIME2 NOT NULL DEFAULT GETDATE()

trong khai báo cột và trong VS2010 Trình thiết kế EntityModel thiết lập thuộc tính cột tương ứng StoreGeneratedPotype = Computing .

Hữu ích 5 Chia sẻ Viết bình luận 1
Không hữu ích

Nếu tôi làm như thế này và làm cho thuộc tính trở thành null, tôi sẽ gặp lỗi xác thực EDMX, bởi vì một cột không thể rỗng được ánh xạ tới một thuộc tính nullable.

Hữu ích 0 · Không hữu ích · Trả lời 0

4
Lý Anh Thảo
7 năm trước

Chỉ cần xem xét việc đặt giá trị của nó trong hàm tạo của lớp thực thể của bạn

public class Foo
{
       public DateTime DateCreated { get; set; }
       public Foo()
       {
           DateCreated = DateTime.Now;
       }

}
Hữu ích 4 Chia sẻ Viết bình luận 1
Không hữu ích

Điều này làm việc cho tôi. Mặc dù tôi đã phải thiết lập Datetimetài sản nullable trước khi làm điều này.

Hữu ích 0 · Không hữu ích · Trả lời 0

4
Lê Minh Danh
9 năm trước

Tôi cũng muốn điều này và đưa ra giải pháp này (Tôi chỉ sử dụng phần ngày - thời gian mặc định không có ý nghĩa như mặc định của PropertyGrid):

public class DefaultDateAttribute : DefaultValueAttribute {
  public DefaultDateAttribute(short yearoffset)
    : base(DateTime.Now.AddYears(yearoffset).Date) {
  }
}

Điều này chỉ tạo một thuộc tính mới mà bạn có thể thêm vào thuộc tính DateTime của mình. Ví dụ: nếu nó mặc định là DateTime.Now.Date:

[DefaultDate(0)]
Hữu ích 4 Chia sẻ Viết bình luận 4
Không hữu ích

CẢNH BÁO!!!!!! Điều này là rất xấu và nên được loại bỏ khỏi SO. Tôi chỉ dành hàng giờ để gỡ lỗi các vấn đề gây ra bởi đề nghị này. Thoạt nhìn, nó có vẻ tốt và có vẻ hiệu quả. Nhưng đây là một cái bẫy. Các thuộc tính yêu cầu các giá trị tĩnh cho một lý do. Chúng được khởi tạo một lần. Sau đó, giá trị thay đổi. Vì vậy, trong khi phiên bản đầu tiên bạn tạo sẽ trông ổn và các phiên bản tiếp theo sẽ ổn, tất cả chúng thực sự sử dụng giá trị đầu tiên. Khi ứng dụng của bạn đã chạy được một lúc, bạn sẽ nhận thấy vấn đề và tự hỏi tại sao. Và trong gỡ lỗi, khi bạn chạy nó trong một phút, nó sẽ chạy tốt. HÃY THỬ!

Hữu ích 30 · Không hữu ích · Trả lời 0

Chris nói đúng. Tôi tìm thấy vấn đề tương tự. Không sử dụng câu trả lời này .

Hữu ích 3 · Không hữu ích · Trả lời 0

chỉ những gì tôi cần cảm ơn

Hữu ích 0 · Không hữu ích · Trả lời 0

@michelsmits, vui lòng xóa cái này hoặc ít nhất là đặt cảnh báo ghi chú chỉnh sửa của nó !!!

Hữu ích 0 · Không hữu ích · Trả lời 0

3
Tạ Phượng Vy
9 năm trước

Tôi cần Dấu thời gian UTC làm giá trị mặc định và vì vậy giải pháp của Daniel đã sửa đổi như thế này:

    [Column(TypeName = "datetime2")]
    [XmlAttribute]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
    [Display(Name = "Date Modified")]
    [DateRange(Min = "1900-01-01", Max = "2999-12-31")]
    public DateTime DateModified {
        get { return dateModified; }
        set { dateModified = value; } 
    }
    private DateTime dateModified = DateTime.Now.ToUniversalTime();

Đối với hướng dẫn DateRangeAttribution, hãy xem bài đăng blog tuyệt vời này

Hữu ích 3 Chia sẻ Viết bình luận 0
Không hữu ích

3
Phan Anh Dũng
9 năm trước

Tạo một lớp thuộc tính mới là một gợi ý tốt. Trong trường hợp của tôi, tôi muốn chỉ định 'mặc định (DateTime)' hoặc 'DateTime.MinValue' để bộ nối tiếp Newtonsoft.Json sẽ bỏ qua các thành viên DateTime mà không có giá trị thực.

[JsonProperty( DefaultValueHandling = DefaultValueHandling.Ignore )]
[DefaultDateTime]
public DateTime EndTime;

public class DefaultDateTimeAttribute : DefaultValueAttribute
{
    public DefaultDateTimeAttribute()
        : base( default( DateTime ) ) { }

    public DefaultDateTimeAttribute( string dateTime )
        : base( DateTime.Parse( dateTime ) ) { }
}

Nếu không có thuộc tính DefaultValue, trình tuần tự JSON sẽ xuất ra "1/1/0001 12:00:00 AM" ngay cả khi tùy chọn DefaultValueHandling.Ignore đã được đặt.

Hữu ích 3 Chia sẻ Viết bình luận 0
Không hữu ích

1
Lê Chí Công
3 năm trước

Có một cách. Thêm các lớp này:

Mặc địnhDateTimeValueAttribution.cs

using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using Custom.Extensions;

namespace Custom.DefaultValueAttributes
{
    /// <summary>
    /// This class's DefaultValue attribute allows the programmer to use DateTime.Now as a default value for a property.
    /// Inspired from https://code.msdn.microsoft.com/A-flexible-Default-Value-11c2db19. 
    /// </summary>
    [AttributeUsage(AttributeTargets.Property)]
    public sealed class DefaultDateTimeValueAttribute : DefaultValueAttribute
    {
        public string DefaultValue { get; set; }
        private object _value;

        public override object Value
        {
            get
            {
                if (_value == null)
                    return _value = GetDefaultValue();

                return _value;
            }
        }

        /// <summary>
        /// Initialized a new instance of this class using the desired DateTime value. A string is expected, because the value must be generated at runtime.
        /// Example of value to pass: Now. This will return the current date and time as a default value. 
        /// Programmer tip: Even if the parameter is passed to the base class, it is not used at all. The property Value is overridden.
        /// </summary>
        /// <param name="defaultValue">Default value to render from an instance of <see cref="DateTime"/></param>
        public DefaultDateTimeValueAttribute(string defaultValue) : base(defaultValue)
        {
            DefaultValue = defaultValue;
        }

        public static DateTime GetDefaultValue(Type objectType, string propertyName)
        {
            var property = objectType.GetProperty(propertyName);
            var attribute = property.GetCustomAttributes(typeof(DefaultDateTimeValueAttribute), false)
                ?.Cast<DefaultDateTimeValueAttribute>()
                ?.FirstOrDefault();

            return attribute.GetDefaultValue();
        }

        private DateTime GetDefaultValue()
        {
            // Resolve a named property of DateTime, like "Now"
            if (this.IsProperty)
            {
                return GetPropertyValue();
            }

            // Resolve a named extension method of DateTime, like "LastOfMonth"
            if (this.IsExtensionMethod)
            {
                return GetExtensionMethodValue();
            }

            // Parse a relative date
            if (this.IsRelativeValue)
            {
                return GetRelativeValue();
            }

            // Parse an absolute date
            return GetAbsoluteValue();
        }

        private bool IsProperty
            => typeof(DateTime).GetProperties()
                .Select(p => p.Name).Contains(this.DefaultValue);

        private bool IsExtensionMethod
            => typeof(DefaultDateTimeValueAttribute).Assembly
                .GetType(typeof(DefaultDateTimeExtensions).FullName)
                .GetMethods()
                .Where(m => m.IsDefined(typeof(ExtensionAttribute), false))
                .Select(p => p.Name).Contains(this.DefaultValue);

        private bool IsRelativeValue
            => this.DefaultValue.Contains(":");

        private DateTime GetPropertyValue()
        {
            var instance = Activator.CreateInstance<DateTime>();
            var value = (DateTime)instance.GetType()
                .GetProperty(this.DefaultValue)
                .GetValue(instance);

            return value;
        }

        private DateTime GetExtensionMethodValue()
        {
            var instance = Activator.CreateInstance<DateTime>();
            var value = (DateTime)typeof(DefaultDateTimeValueAttribute).Assembly
                .GetType(typeof(DefaultDateTimeExtensions).FullName)
                .GetMethod(this.DefaultValue)
                .Invoke(instance, new object[] { DateTime.Now });

            return value;
        }

        private DateTime GetRelativeValue()
        {
            TimeSpan timeSpan;
            if (!TimeSpan.TryParse(this.DefaultValue, out timeSpan))
            {
                return default(DateTime);
            }

            return DateTime.Now.Add(timeSpan);
        }

        private DateTime GetAbsoluteValue()
        {
            DateTime value;
            if (!DateTime.TryParse(this.DefaultValue, out value))
            {
                return default(DateTime);
            }

            return value;
        }
    }
}

Mặc địnhDateTimeExtensions.cs

using System;

namespace Custom.Extensions
{
    /// <summary>
    /// Inspired from https://code.msdn.microsoft.com/A-flexible-Default-Value-11c2db19. See usage for more information.
    /// </summary>
    public static class DefaultDateTimeExtensions
    {
        public static DateTime FirstOfYear(this DateTime dateTime)
            => new DateTime(dateTime.Year, 1, 1, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);

        public static DateTime LastOfYear(this DateTime dateTime)
            => new DateTime(dateTime.Year, 12, 31, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);

        public static DateTime FirstOfMonth(this DateTime dateTime)
            => new DateTime(dateTime.Year, dateTime.Month, 1, dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);

        public static DateTime LastOfMonth(this DateTime dateTime)
            => new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month), dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond);
    }
}

Và sử dụng DefaultDateTimeValue làm thuộc tính cho các thuộc tính của bạn. Giá trị để nhập vào thuộc tính xác thực của bạn là những thứ như "Hiện tại", sẽ được hiển thị trong thời gian chạy từ một phiên bản DateTime được tạo bằng Trình kích hoạt. Mã nguồn được lấy cảm hứng từ chủ đề này: https://code.msdn.microsoft.com/A-flexible-Default-Value-11c2db19 . Tôi đã thay đổi nó để làm cho lớp của tôi kế thừa với DefaultValueAttribution thay vì một ValidationAttribution.

Hữu ích 1 Chia sẻ Viết bình luận 0
Không hữu ích

1
Hồ Thành Trung
2 năm trước

Trong C # Phiên bản 6, có thể cung cấp một giá trị mặc định

public DateTime fieldname { get; set; } = DateTime.Now;
Hữu ích 1 Chia sẻ Viết bình luận 2
Không hữu ích

Chào mừng bạn đến với StackOverflow: nếu bạn đăng các mẫu mã, XML hoặc dữ liệu, vui lòng tô sáng các dòng đó trong trình soạn thảo văn bản và nhấp vào nút "mẫu mã" ({}) trên thanh công cụ của trình soạn thảo hoặc sử dụng Ctrl + K trên bàn phím để định dạng độc đáo và cú pháp làm nổi bật nó!

Hữu ích 1 · Không hữu ích · Trả lời 0

Giống như stackoverflow

Hữu ích 0 · Không hữu ích · Trả lời 0

0
Hoàng Quỳnh Nhiên
10 năm trước
public DateTime DateCreated
{
   get
   {
      return (this.dateCreated == default(DateTime))
         ? this.dateCreated = DateTime.Now
         : this.dateCreated;
   }

   set { this.dateCreated = value; }
}
private DateTime dateCreated = default(DateTime);
Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Võ Mai Vy
11 năm trước

Làm thế nào bạn đối phó với điều này tại thời điểm này phụ thuộc vào mô hình bạn đang sử dụng Linq để SQL hoặc EntityFramework?

Trong L2S ​​bạn có thể thêm

public partial class NWDataContext
{
    partial void InsertCategory(Category instance)
    {
        if(Instance.Date == null)
            Instance.Data = DateTime.Now;

        ExecuteDynamicInsert(instance);
    }
}

EF phức tạp hơn một chút, hãy xem http://msdn.microsoft.com/en-us/l Library / cc716714.aspx để biết thêm thông tin về logic kinh doanh của EF.

Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Nguyễn Trung Khải
5 năm trước

Tôi biết bài này hơi cũ, nhưng có một gợi ý có thể giúp một số.

Tôi đã sử dụng một Enum để xác định những gì cần thiết lập trong hàm tạo thuộc tính.

Khai báo tài sản:

[DbProperty(initialValue: EInitialValue.DateTime_Now)]
public DateTime CreationDate { get; set; }

Nhà xây dựng tài sản:

Public Class DbProperty Inherits System.Attribute

    Public Property InitialValue As Object

    Public Sub New(ByVal initialValue As EInitialValue)
       Select Case initialValue
          Case EInitialValue.DateTime_Now
             Me.InitialValue = System.DateTime.Now

          Case EInitialValue.DateTime_Min
             Me.InitialValue = System.DateTime.MinValue

          Case EInitialValue.DateTime_Max
             Me.InitialValue = System.DateTime.MaxValue

       End Select

    End Sub
End Class

Enum:

Public Enum EInitialValue
   DateTime_Now
   DateTime_Min
   DateTime_Max
End Enum
Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Bùi Khải Hà
3 năm trước

Tôi nghĩ bạn có thể làm điều này bằng cách sử dụng StoreGeneratedPattern = Identity(đặt trong cửa sổ thuộc tính của nhà thiết kế mô hình).

Tôi đã không đoán được đó sẽ là cách thực hiện, nhưng trong khi cố gắng tìm hiểu tôi nhận thấy rằng một số cột ngày của tôi đã được mặc định CURRENT_TIMESTAMP()và một số cột không. Kiểm tra mô hình, tôi thấy rằng sự khác biệt duy nhất giữa hai cột bên cạnh tên là cái nhận được giá trị mặc định đã StoreGeneratedPatternđược đặt thành Identity.

Tôi đã không mong đợi rằng đó là cách, nhưng đọc mô tả, nó có ý nghĩa:

Xác định xem cột tương ứng trong cơ sở dữ liệu sẽ được tạo tự động trong các hoạt động chèn và cập nhật.

Ngoài ra, trong khi điều này làm cho cột cơ sở dữ liệu có giá trị mặc định là "ngay bây giờ", tôi đoán nó không thực sự đặt thuộc tính DateTime.Nowở trong POCO. Đây không phải là vấn đề đối với tôi vì tôi có tệp .tt tùy chỉnh đã tự động đặt tất cả các cột ngày của tôi DateTime.Now(thực sự không khó để tự sửa đổi tệp .tt, đặc biệt là nếu bạn có ReSharper và làm nổi bật cú pháp plugin. (Phiên bản mới hơn của VS có thể đã làm nổi bật các tệp .tt, không chắc chắn.))

Vấn đề đối với tôi là: làm cách nào để cột cơ sở dữ liệu có mặc định để các truy vấn hiện có bỏ qua cột đó vẫn hoạt động? Và các thiết lập ở trên đã làm việc cho điều đó.

Tôi chưa thử nghiệm nhưng cũng có thể việc cài đặt này sẽ can thiệp vào việc thiết lập giá trị rõ ràng của riêng bạn. (Tôi chỉ vấp phải điều này ở nơi đầu tiên vì Cơ sở dữ liệu EF6 Đầu tiên đã viết mô hình cho tôi theo cách này.)

Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Lý Vĩnh Tâm
2 năm trước

Chỉ thấy điều này đang tìm kiếm thứ gì đó khác biệt, nhưng trong phiên bản C # mới, bạn có thể sử dụng phiên bản thậm chí ngắn hơn cho điều đó:

public DateTime DateCreated { get; set; } = DateTime.Now;
Hữu ích 0 Chia sẻ Viết bình luận 0
Không hữu ích

0
Đặng Thục Uyên
2 năm trước

sử dụng System.ComponentModel.DataAnnotations.Schema;

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreatedOn { get; private set; }
Hữu ích 0 Chia sẻ Viết bình luận 1
Không hữu ích

Vui lòng kiểm tra cách trả lời

Hữu ích 0 · Không hữu ích · Trả lời 0

Trả lời của bạn

Xem trước nội dung