Подтвердить что ты не робот

Добавить методы в модель с использованием структуры сущностей

С инфраструктурой сущностей, можно ли добавлять методы к классу объектов? Например, у меня есть сопоставление CLIENT, и я бы хотел создать метод getAgeFromBirhDate.

4b9b3361

Ответ 1

Да. Возможно. Entity Framework генерирует Частичные классы.

Это означает, что вы можете создать другой файл, содержащий другую часть определения Partial Class (с вашими дополнительными методами), и все будет работать нормально.

Ответ 2

Пример для первого ответа:

если у вас есть объект с именем Flower, вы можете использовать этот класс partial для добавления к нему метода:

namespace Garden //same as namespace of your entity object
{
    public partial class Flower  
    {
        public static Flower Get(int id)
        { 
            //
        }
    }
}

Ответ 3

public static class ModelExtended
{
    public static void SaveModelToXML(this Model1Container model, string xmlfilePath)
    {
        ///some code
    }
}

Ответ 4

Предполагая, что у вас есть свой неполный класс с ценой атрибута Entity Framework из базы данных:

    namespace Garden //same as namespace of your entity object
    {
        public partial class Flower  
        {
            public int price;
            public string name;
            // Any other code ...
        }
    }

Если вы не хотите использовать другой частичный класс, вы можете определить свой собственный пользовательский класс, содержащий исходный объект, хранящийся в качестве атрибута. Вы можете добавить любые дополнительные пользовательские атрибуты и методы

namespace Garden //same as namespace of your entity object
{
    public class CustomFlower  
    {
        public Flower originalFlowerEntityFramework;

        // An extra custom attribute
        public int standardPrice;


        public CustomFlower(Flower paramOriginalFlowerEntityFramework)
        { 
            this.originalFlowerEntityFramework = paramOriginalFlowerEntityFramework
        }


        // An extra custom method
        public int priceCustomFlowerMethod()
        {
            if (this.originalFlowerEntityFramework.name == "Rose" ) 
                return this.originalFlowerEntityFramework.price * 3 ;
            else 
                return this.price ;
        }

    }
}

Затем, где бы вы ни захотели его использовать, вы создаете свой собственный объект класса и сохраняете в нем тот, который находится в Entity Framework:

//Your Entity Framework class
Flower aFlower = new Flower();
aFlower.price = 10;
aFlower.name = "Rose";

// or any other code ...

// Your custom class
CustomFlower cFlower =  new CustomFlower(aFlower);
cFlower.standardPrice = 20;

MessageBox.Show( "Original Price : " + cFlower.originalFlowerEntityFramework.price );
// Will display 10
MessageBox.Show( "Standard  price : " + cFlower.standardPrice );
// Will display 20
MessageBox.Show( "Custom Price : " + cFlower.priceCustomFlowerMethod() );
// Will display 30