linq a entity   otázka

C#, VB.NET, LINQ, ADO.NET, WinForms

Zdravim chtel jsem vas poprosit o radu zda-li nevíte proc mi nejde ve VS2010 vytvořit v klasicke Form aplikaci zároveň ADO.NET Entity Data model a Linq to SQL Class. Jde vytvorit pouze jeden ale oba ne. Kdyz vytvorim oba tak vysledkem je hromada chyb. Jak ADO.NET tak i Linq Class vytvarim z jedne stejne databaze.

Mockrat diky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevygenerovalo vám to ty entity do stejného namespace?

A na co to vůbec potřebujete?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslite ze by mohl byt problem v tom ze obe generuju do stejneho namespace. Ale zajímavý je to že některý tabulky jdou vygenerovat obema metodama (jak linq tak i entity) ale nektery ne.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, pokud L2S i EF generují třídy se stejnými názvy do jednoho namespace, tak to problém je.

Jaké chyby vám to vlastně píše?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Moc diky za radu. Tak jsem to zkusil dat do dvou namespace ale nap5. p5i dotazu

 from c in db.GetTable<SalesOrderDetail>() select c;

je problém u Linq dotazu:

Error 'SalesOrderDetail' is an ambiguous reference between 'namespace1.namespaceEFramework.SalesOrderDetail' and 'namespace1.SalesOrderDetail'

kdyz ale dotaz upravim

from c in db.GetTable<namespace1.SalesOrderDetail>() select c;

tak to funguje.

Chtěl jsem se zeptat jestli by to neslo nejak udelat aby se nemusel psat dotaz do tabulky pres ten namespace db.GetTable<namespace1.SalesOrderDetail>() ale jenom takto.

 from c in db.GetTable<SalesOrderDetail>() select c;

(jo using mam v hlavicce uvedenej)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

1. Označujte bloky kódu tlačítkem VB Code (to nevadí, že kód je v C#).

2. Buď musíte striktně namespace před ty typy psát, nebo mít v using blocích vždy jen jeden.

Ale jak koukám, tak ty namespaces máte zanořené, takže to moc jinak nepůjde.

Pokud už bůhvíproč musíte v projektu mít L2S i EF, tak si udělejte namespaces namespace1.EF a namespace1.L2S.

Protože pokud se nacházíte řekněme v namespace A.B.C, tak máte automaticky naimportované i namespaces A.B a A.

Prostě když máte víc tříd, které se jmenují stejně, tak se nedivte, že to dělá takovéhle kraviny a musíte je mít v jiných namespacech.

Kompilátor musí být vždy schopen jednoznačně určit, kterou třídu použijete, nesmí mít na výběr dvě možnosti, pak se vzteká. Pokud dáte do usingu obě dvě anebo jste ve stejném namespace, jako jedna z těch entit, a přidáte using na tu druhou, pak to jednoznačné není.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

diky za radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback