Note that there are some explanatory texts on larger screens.

plurals
  1. POMVC 4 EF5 Database First set Default Values in Partial Class
    primarykey
    data
    text
    <p>I'm new to MVC and trying to figure out how to set default values for partial classes. I have been searching for 2 days now, and can't get anything to work. <a href="https://stackoverflow.com/questions/12691854/setting-default-value-in-entity-framework-database-first">Here</a> is a supposed solution, but it doesn't work for me. I also tried the [DefaultValue(10)] data annotation.</p> <p>Here is the auto generated partial class created from the edmx file</p> <pre><code>//------------------------------------------------------------------------------ // &lt;auto-generated&gt; // This code was generated from a template. // // Manual changes to this file may cause unexpected behavior in your application. // Manual changes to this file will be overwritten if the code is regenerated. // &lt;/auto-generated&gt; //------------------------------------------------------------------------------ namespace OTIS.Models.Admin { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial class Company { public Company() { this.Facilities = new HashSet&lt;Facility&gt;(); } public int CompanyID { get; set; } [Required] [Display(Name = "Company Name")] public string CompanyName { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string City { get; set; } public string State { get; set; } public string PostalCode { get; set; } public decimal ItemMargin { get; set; } public decimal ServicesMargin { get; set; } public decimal InvoiceTimeIncrement { get; set; } public decimal CashDiscountPct { get; set; } public decimal BaseServiceHourlyRate { get; set; } public decimal HourlyPremiumRush { get; set; } public decimal HourlyPremiumLate { get; set; } public decimal HourlyPremiumCustomerMaterial { get; set; } public int CreatedByID { get; set; } public System.DateTime CreatedOn { get; set; } public int ModifiedBy { get; set; } public System.DateTime ModifiedOn { get; set; } public virtual UserProfile UserProfile { get; set; } public virtual UserProfile UserProfile1 { get; set; } public virtual ICollection&lt;Facility&gt; Facilities { get; set; } } } </code></pre> <p>Here is my partial class I created to add annotations.</p> <pre><code>namespace OTIS.Models.Admin { [MetadataType(typeof(CompanyMD))] public partial class Company { //public Company() //{ // //private System.DateTime _currentDateTime = DateTime.Now; // ////Set Default Values // //CreatedByID = (int)Membership.GetUser().ProviderUserKey; // //CreatedOn = _currentDateTime; // //ModifiedBy = (int)Membership.GetUser().ProviderUserKey; // //ModifiedOn = _currentDateTime; //} public string FullAddress { get { return this.City + ", " + this.State + " " + this.PostalCode; } } public class CompanyMD { private System.DateTime _currentDateTime = DateTime.Now; private int _currentUser = (int)Membership.GetUser().ProviderUserKey; [Display(Name = "Company ID")] public int CompanyID { get; set; } [Required] [Display(Name = "Company Name")] public string CompanyName { get; set; } [Display(Name = "Address")] public string Address1 { get; set; } [Display(Name = "Address 2")] public string Address2 { get; set; } public string City { get; set; } public string State { get; set; } [Display(Name = "Zip")] public string PostalCode { get; set; } [Display(Name = "Address")] public string FullAddress { get; set; } [Display(Name = "Material Margin")] public decimal ItemMargin { get; set; } [Display(Name = "Overtime Margin")] public decimal ServicesMargin { get; set; } [Display(Name = "Invoice Hour Increment")] public decimal InvoiceTimeIncrement { get; set; } private decimal _cashDiscountPct; [Display(Name = "Cash Discount %")] [DisplayFormat(DataFormatString = "{0:P2}")] public decimal CashDiscountPct { get { return _cashDiscountPct; } set { _cashDiscountPct = value/100; } } [Display(Name = "Base Hourly Rate ($/Hr)")] [DataType(DataType.Currency), DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)] public decimal BaseServiceHourlyRate { get; set; } [Display(Name = "Rush Premium ($/Hr)")] [DataType(DataType.Currency), DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)] public decimal HourlyPremiumRush { get; set; } [Display(Name = "Late Premium ($/Hr)")] [DataType(DataType.Currency), DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)] [DefaultValue(75)] public decimal HourlyPremiumLate { get; set; } [Display(Name = "Cust Material Premium ($/Hr)")] [DataType(DataType.Currency), DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)] public decimal HourlyPremiumCustomerMaterial { get; set; } [Display(Name = "Created By")] public int CreatedByID { get; set; } //{ // get { return _currentUser; } // set { _currentUser = value; } //} [Display(Name = "Created On")] [DatabaseGenerated(DatabaseGeneratedOption.Computed)] //[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] public System.DateTime CreatedOn { get { return _currentDateTime; } set { _currentDateTime = value; } } [Display(Name = "Modified By")] public int ModifiedBy { get; set; } //{ // get { return _currentUser; } // set { _currentUser = value; } //} [Display(Name = "Modified On")] public System.DateTime ModifiedOn { get { return _currentDateTime; } set { _currentDateTime = value; } } } } } </code></pre> <p>And then in my controller, I instantiate a new instance of the class to initialize it, but the values I set don't get set.</p> <pre><code>// // GET: /Company/Create public ActionResult Create() { ViewBag.CreatedByID = new SelectList(db.UserProfiles, "UserId", "UserName"); ViewBag.ModifiedBy = new SelectList(db.UserProfiles, "UserId", "UserName"); Company newCompany = new Company(); return View(newCompany); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload