• Webseitenerstellung und -hosting
  • .NET Anwendungsentwicklung
  • softwaregesteuerte Prozessoptimierung
  • .NET

    Programmierung

  • WebseitenErstellung

    undHosting

  • softwaregesteuerte

    Prozessoptimierung

  • Konzeption

    und Beratung

%AM, %05. %504 %2013 %11:%Jul

Entitäten klonen und vergleichen mit dem Entity Framework 4

geschrieben von
Artikel bewerten
(0 Stimmen)
Da solche Funktionen erst mit EF5 bzw. .NET 4.5 halbwegs vernünftig zur Verfügung stehen ("AsNoTracking") hier eine Möglichkeit um Entitäten zu klonen (als Extension :-))

;
Public Function Clone(Of t As EntityObject)(entity As t, ctx As oraEntities, Optional copyKeys As Boolean = True) As t
Try
Dim cloneE As t = ctx.CreateObject(Of t)()
Dim pis As PropertyInfo() = entity.GetType.GetProperties()

For Each pi As PropertyInfo In pis
Dim attrs As EdmScalarPropertyAttribute() = DirectCast(pi.GetCustomAttributes(GetType(EdmScalarPropertyAttribute), False), EdmScalarPropertyAttribute())

For Each attr As EdmScalarPropertyAttribute In attrs
If Not copyKeys AndAlso attr.EntityKeyProperty Then
Continue For
End If
'Strung und NULL abfangen, wird trotz Standardwert im SQL Server nicht imgesetzt
Dim objVal As Object
If pi.PropertyType = GetType(String) And pi.GetValue(entity, Nothing) Is Nothing Then
objVal = ""
Else
objVal = pi.GetValue(entity, Nothing)
End If
pi.SetValue(cloneE, objVal, Nothing)
Next
Next
Return cloneE
Catch ex As Exception
Throw ex
End Try
End Function


und zu vergleichen


;
Public Function Compare(Of t As EntityObject)(entityOriginal As t, entityCopy As t) As Boolean
Try
'Um Änderungen einer Entität festzustellen (t.equals funktioniert aufgrund der Abhängigkeiten mit anderen Tabellen nicht)
Dim pisOrig As PropertyInfo() = entityOriginal.GetType.GetProperties()

For Each piOrig As PropertyInfo In pisOrig
Dim attrs As EdmScalarPropertyAttribute() = DirectCast(piOrig.GetCustomAttributes(GetType(EdmScalarPropertyAttribute), False), EdmScalarPropertyAttribute())
If attrs.Count > 0 Then 'Fremdschlüsseltabellen ausschliessen
Dim objOrig As Object = If(GetType(t).GetProperty(piOrig.Name).GetValue(entityOriginal, Nothing) Is Nothing, "", GetType(t).GetProperty(piOrig.Name).GetValue(entityOriginal, Nothing))
Dim objCopy As Object = If(GetType(t).GetProperty(piOrig.Name).GetValue(entityCopy, Nothing) Is Nothing, "", GetType(t).GetProperty(piOrig.Name).GetValue(entityCopy, Nothing))
If Not objOrig.Equals(objCopy) Then
Return False
End If
End If
Next

Return True
Catch ex As Exception
Throw ex
End Try
End Function


Verknüfte Tabellen werden dabei allerdings nicht übernommen!		
Gelesen 38511 mal Letzte Änderung am %PM, %24. %643 %2015 %14:%Jun

191 Kommentare

  • Kommentar-Link casino_zyPi %PM, %04. %795 %2024 %18:%Mär gepostet von casino_zyPi

    Онлайн казино в Беларуси с мобильной версией: играйте в любое время и в любом месте
    онлайн казино казино беларусь .

  • Kommentar-Link casino_hrPi %PM, %04. %784 %2024 %17:%Mär gepostet von casino_hrPi

    Секреты выбора лучшего онлайн казино в Беларуси: критерии оценки
    онлайн казино казино беларусь .

  • Kommentar-Link remont_pgMl %AM, %04. %518 %2024 %11:%Mär gepostet von remont_pgMl

    Как быстро и качественно провести ремонт холодильника Атлант?

    ремонт холодильников атлант в минске на дому ремонт холодильников атлант .

  • Kommentar-Link remont_pxMl %AM, %04. %483 %2024 %10:%Mär gepostet von remont_pxMl

    Куда обратиться за ремонтом холодильника Атлант? У нас!

    ремонт холодильников атлант ремонт холодильников атлант в минске .

  • Kommentar-Link kondicione_ajMi %AM, %04. %056 %2024 %00:%Mär gepostet von kondicione_ajMi

    1. Где купить кондиционер: лучшие магазины и выбор
    2. Как выбрать кондиционер: советы по покупке
    3. Кондиционеры в наличии: где купить прямо сейчас
    4. Купить кондиционер онлайн: удобство и выгодные цены
    5. Кондиционеры для дома: какой выбрать и где купить
    6. Лучшие предложения на кондиционеры: акции и распродажи
    7. Кондиционер купить: сравнение цен и моделей
    8. Кондиционеры с установкой: где купить и как установить
    9. Где купить кондиционер с доставкой: быстро и надежно
    10. Кондиционеры: где купить качественный товар по выгодной цене
    11. Кондиционер купить: как выбрать оптимальную мощность
    12. Кондиционеры для офиса: какой выбрать и где купить
    13. Кондиционер купить: самый выгодный вариант
    14. Кондиционеры в рассрочку: где купить и как оформить
    15. Кондиционеры: лучшие магазины и предложения
    16. Кондиционеры на распродаже: где купить по выгодной цене
    17. Как выбрать кондиционер: советы перед покупкой
    18. Кондиционер купить: где найти лучшие цены
    19. Лучшие магазины кондиционеров: где купить качественный товар
    20. Кондиционер купить: выбор из лучших моделей
    монтаж кондиционера цена https://www.kondicioner-cena.ru/ .

  • Kommentar-Link prodvizhen_jnEn %PM, %03. %949 %2024 %21:%Mär gepostet von prodvizhen_jnEn

    Интернет-реклама для строительных фирм: как не потерять деньги?
    продвижение строительных сайтов https://seo-prodvizhenie-sajtov-stroitelnyh-kompanij.ru/ .

  • Kommentar-Link kupit_rnkt %AM, %03. %434 %2024 %09:%Mär gepostet von kupit_rnkt

    Советы
    19. Как купить хостинг с SSL-сертификатом для безопасности
    hosting joomla https://kish-host.ru .

  • Kommentar-Link montazh_fiSa %AM, %02. %451 %2024 %09:%Mär gepostet von montazh_fiSa

    18. Специфика установки кондиционера в частном доме
    кондиционер мастер http://www.montazh-kondicionera-moskva.ru/ .

  • Kommentar-Link russkiy-diploms-srednee.com %PM, %01. %718 %2024 %16:%Mär gepostet von russkiy-diploms-srednee.com

    В столице России купить диплом – это практичный и быстрый метод получить нужный документ без избыточных проблем. Разнообразие компаний предоставляют услуги по изготовлению и реализации свидетельств разнообразных образовательных институтов - russkiy-diploms-srednee.com. Выбор дипломов в столице России огромен, включая бумаги о академическом и среднем ступени профессиональной подготовке, документы, свидетельства техникумов и вузов. Основное плюс – возможность получить свидетельство официальный документ, подтверждающий достоверность и высокое качество. Это гарантирует уникальная защита ото подделок и дает возможность использовать аттестат для различных нужд. Таким способом, заказ диплома в Москве становится достоверным и оптимальным вариантом для данных, кто стремится к успеха в сфере работы.

  • Kommentar-Link ustanovka_cwOt %AM, %01. %421 %2024 %09:%Mär gepostet von ustanovka_cwOt

    Шаг за шагом
    4. Важные этапы установки кондиционера
    кондиционер сплит система http://www.ustanovit-kondicioner.ru/ .

Schreibe einen Kommentar

Bitte achten Sie darauf, alle Felder mit Stern * zu füllen. HTML-Code ist nicht erlaubt.