Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting default value in entity framework - Database First

I am using Entity Framework 4.3.1, with auto-generated entities from the database.

From this, is there any way to set the default value to something? I don't want to put it in the auto-generated code since it will be overwritten.

I understand that it is possible to use partial classes, so I tried something like this, where entity is generated, and DESCRIPTION_ is the attribute I want to set to a default value.

namespace name.Models
{
    public partial class ENTITY
    {
        public string DESCRIPTION_
        {
            set { _DESCRIPTION_ = "default string"; }
        }
    }
}

Maybe if somebody could give me an example that would be great!

like image 479
deep Avatar asked Oct 02 '12 14:10

deep


2 Answers

The example you give means that DESCRIPTION can only ever be "default string"

You can set it in the constructor

namespace name.Models 
{
  public partial class ENTITY
  {
    private string defaultDescription = "some text";
    public ENTITY() {
      DESCRIPTION_ = defaultDescription;
    } 
  }
}

or by switching your property to one with a backing field

namespace name.Models
{
    public partial class ENTITY
    {
        private string _desc = "some default value"; 
        public virtual string DESCRIPTION_ {get {return _desc} set {_desc = value;} }
    }
}
like image 87
Paul D'Ambra Avatar answered Nov 14 '22 23:11

Paul D'Ambra


You use OnCreated on the partial class:

public partial class ENTITY
{    
  partial void OnCreated()
  {
    DESCRIPTION_ = "default string";
  } 
}
like image 33
Jcl Avatar answered Nov 14 '22 22:11

Jcl