Linq a vlastní struct – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Linq a vlastní struct – .NET – Fórum – Programujte.comLinq a vlastní struct – .NET – Fórum – Programujte.com

 

velurex0
Stálý člen
4. 8. 2009   #1
-
0
-

Pokouším se uložit do sql pomocí linq vlastní strukturu, vypadající přibližně takto:

struct Moje

{
private int data;

public bool Vlastnost1 { get { return // ... vraci neco zalozene na "data"
public int Vlastnost2 { get { return // ... opet neco postavene na promenne data
}


V databázi mám definovaný sloupec typu int a chci aby se do něj zapsala hodnota privatni promenne. Pokus o zápis do sql končí vždy hláškou o tom, že nelze přetypovat Moje na System32.Int32. To je sice logické, ale nevím jak to obejít. Zkoušel jsem uvnitř struktury definovat různé operátory, ale nic mi nepomohlo. Poradíte?

Nahlásit jako SPAM
IP: 213.191.119.–
Miro17010
Stálý člen
Nahlásit jako SPAM
IP: 85.159.104.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
velurex0
Stálý člen
4. 8. 2009   #3
-
0
-

Paráda, funguje! Ale jak zpátky? :) Tj. aby při načítání z databáze automaticky převáděl int na Moje?

Nahlásit jako SPAM
IP: 213.191.119.–
Miro17010
Stálý člen
4. 8. 2009   #4
-
0
-

Pouzi implicit alebo explicit operatory:

implicit mas sem:

using System;


namespace Testing
{
struct A
{
public int n;
public float m;

static public implicit operator int( A a )
{
return a.n + 5;
}

static public implicit operator A( int n )
{
A a = new A();
a.n = n - 5;

return a;

}

public override string ToString ()
{
return string.Format("[A: n = {0}, m = {1}]", this.n, this.m);
}
}

class MainClass
{
public static void Main()
{
int n = 10;
Console.WriteLine( n );


A a = n;
Console.WriteLine( a.ToString() );

a.n++;
Console.WriteLine( a.ToString() );

n = a;
Console.WriteLine( n );
}
}
}

Nahlásit jako SPAM
IP: 85.159.104.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
Miro17010
Stálý člen
4. 8. 2009   #5
-
0
-

a mozno ti ani nebude treba IConvertible

a zabudol som vystup:

10

[A: n = 5, m = 0]
[A: n = 6, m = 0]
11

Nahlásit jako SPAM
IP: 85.159.104.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
velurex0
Stálý člen
4. 8. 2009   #6
-
0
-

Operátory uvnitř struct jsem zkoušel a takto jako samostatná aplikace mi to také fungovalo, bohužel LINQ musí používat nějaký jiný interní mechanismus na přetypování a v něm to už nefunguje. :(

Nahlásit jako SPAM
IP: 213.191.119.–
Miro17010
Stálý člen
4. 8. 2009   #7
-
0
-

neviem presne co chces cize ti nepomozem

Nahlásit jako SPAM
IP: 85.159.104.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
velurex0
Stálý člen
4. 8. 2009   #8
-
0
-
Nahlásit jako SPAM
IP: 213.191.119.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 34 hostů

Podobná vlákna

LINQ from from — založil liza

LINQ a DB — založil Jirka

Odfiltrovanie v LINQ — založil Jan

SQL to LINQ — založil jabo

C# použití linq — založil Marek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý