Why are entity framework entities partial classes?

后端 未结 3 1372
不思量自难忘°
不思量自难忘° 2021-02-07 14:59

I recently began using entity framework, and I noticed that generated entities are partial classes. What are the uses of that? I googled a bit and people mostly speak of validat

相关标签:
3条回答
  • 2021-02-07 15:31

    partial is added to generated entities for customization.

    In situations when you wish to add your own methods to classes produced by code generators, including EF, it is a good idea to put your implementation in a separate file, so that you wouldn't run the risk of losing your customizations each time the code is re-generated.

    Without partial developers wishing to customize the class would have to use work-around techniques, such as applying Generation Gap design pattern.

    0 讨论(0)
  • 2021-02-07 15:34

    For the same reason partial classes typically exist at all, code generation.

    When code is generated; you don't want your additional methods/properties/whatever blown away, so the designers mark such classes partial to allow users to put additional code in a different file.

    In Code-First, the code-generation aspect of EF has largely become obsolete so any EF model classes you create do not need partial.

    0 讨论(0)
  • 2021-02-07 15:44

    Marking it as partial allows you to put attributes to that class.
    It is handy for example when you need to mark DB generated class as Serializable to be able to store it in Session object (when SQL server mode is used in balanced environments).

    0 讨论(0)
提交回复
热议问题