Entity Framework And Business Objects

十年热恋 提交于 2019-11-26 17:46:55
Ladislav Mrnka

When you define an entity in the EDMX model you can specify the visibility of each property's setter and getter, so if you don't want the ModifiedDate to be visible in other layers, you can simply specify it as internal.

If your requirements are more complicated like the ModifiedDate should be accessible in the entities assembly and the business logic assembly but not in the UI assembly, then you need to create another object which will be exchanged between the business logic and the UI logic layers.

Personally use a wrapper class over entity and expose or shadow what I need.

// instead of below property in your BLL:

private int m_someVariable;

public int SomeVariable
{
    get { return m_someVariable; }
    set { m_someVariable = value; }
}

// You can use the entity object:

private readonly EntityClass _entityObject = new EntityClass();

public int SomeVariable
{
    get { return _entityObject.SomeVariable; }
    set { _entityObject.SomeVariable = value; }
}

// or make it read-only at your BLL

public int SomeVariable
{
    get { return entityObject.SomeVariable; }
    // set { entityObject.SomeVariable = value; }
}

You only bind the properties you want to the presentation layer, this can be done through declaration, a Business Logic layer (with it's own level of object abstraction) or your ViewModel.

      // this is your edmx
        Asset5Entities conx = new Asset5Entities();

// consider this is a new object list of Contact that is a table in the database //using entity framework this database table is mapped to an object for u to handle

            List$gt;Contact$lt; s = new List$gt;Contact$lt;();

//using a big of LINQ u can now select or query over any table in ur database and u have // access to the columns in that table example (Email) here

        var result = from q in conx.Contacts select q.Email;

// rather than

        string sqlcommand = "select email from Contacts";
        Contact con = new Contact();
        con.Email= "xxxx@gmail.com";
        con.FirstName="nader";

        //etc etc... 



        conx.Contacts.AddObject(con);

        //rather than   " insert into Contact values ......................"

        //having your queries within ur c# code rather than strings that are not parsed //for errors but on runtime was alot helpful for me
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!