Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von MMCSharp
Thema: Parse "Sun Dec 13 03:52:21 +0000 2009" zu DateTime
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen, vielen, vielen, herzlichen Dank für die Hilfe!

Thema: Parse "Sun Dec 13 03:52:21 +0000 2009" zu DateTime
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen Dank.. Manchmal sieht man einfach den Wald vor lauter Bäumen nicht mehr. Das klappt jetzt auch schon relativ gut, jedoch immer noch nicht zuverlässig. Der Versuch
"Mon Jan 23 14:55:09 +0000 2023" zu parsen schlägt wieder fehl.

Thema: Parse "Sun Dec 13 03:52:21 +0000 2009" zu DateTime
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

folgendes (unprofessionell wirkendes) habe ich versucht, das nicht fehlerfrei klappt


               string[] TimeSplits= _creation_date.Split(' ', '\t','\n','\r');
                
                string dateString = $"{TimeSplits[0].Trim()} {TimeSplits[2].Trim()} {TimeSplits[1].Trim()} {TimeSplits[3].Trim()}";
                string format = "ddd dd MMM hh:mm:ss";

                if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result))
                {
                    return  result.ToString();
                }
                else
                {
                    return  "No date time info";
                }

das habe ich versucht


                if (DateTime.TryParse(_creation_date, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result))
                {
                    return  result.ToString();
                }
                else
                {
                    return  "No date time info";
                }

das habe ich versucht


                if (DateTime.TryParseExact(_creation_date, "ddd MMM dd hh:mm:ss fffzzz yyyy", new CultureInfo("en-US"),DateTimeStyles.AssumeLocal, out DateTime dateTime))
                {
                    return dateTime.ToString("dd.MM.yyyy hh:mm:ss");
                } 

und einiges andere..

Thema: Parse "Sun Dec 13 03:52:21 +0000 2009" zu DateTime
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,
Ich würde gerne den String "Sun Dec 13 03:52:21 +0000 2009" in eine "DateTime" parsen um ihn in einem andrerem Format darzustellen. Allerdings scheitern meine Versuche mit Parse, TryPars und TryParseExact. Hat jemand eine Idee?

Thema: HttpClient ServiceKlasse Exception - handling
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen

Ich würde gerne eine RestApi nutzen. Dazu habe ich eine Client- Klasse erstellt und diese generisch gestaltet. Nun würde ich gern über "Try,Catch" etwaige Fehler abfangen. Allerdings bin ich mir nicht sicher wie ich mit den Fehlern umgehen soll. Wie wird hier normalerweise vorgegangen? Ich hatte den Aufbau so gewählt um Aufrufe an den Client zu vereinfachen und um den Client in den Tests Mocken zu können. Des weitern würde ich gern die Fehler in dieser Klasse abfangen, um in den Repositorys lediglich mit den empfangen bzw. nicht empfangenen Daten arbeiten zu können und dort weitestgehend ohne Exceptions-Handling aus zu kommen.


public class ApiClientService : IHttpClientService<string>
    {
        private HttpClient _httpClient;

        public ApiClientService(HttpClient httpClient) 
        { 
            _httpClient = httpClient;
        }
        
        public ApiClientService() 
        {
            _httpClient=new HttpClient();
        }

        public async Task<string> GetData(HttpRequestMessage httpRequestMessage, CancellationToken _Token)
        {
            try
            {
                using (var response = await _httpClient.SendAsync(httpRequestMessage, _Token))
                {
                    //Logger implementeieren => success response
                    response.EnsureSuccessStatusCode();

                    var body = await response.Content.ReadAsStringAsync();

                    //Pass not String
                    if (body.GetType() != typeof(string))
                    {
                        //Logger implementieren
                        throw new Exception("return is no string");
                    }
                    return body; 
                }
            }
            catch (Exception exception)
            {
                
                
            }
        }
    }

Thema: Android Bluetooth
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Das hatte ich bereits versucht, leider gibt es hier mit der Kompatibilität zu bzw. ab Android 12 Probleme.. Dafür ist hier der Rest gut: hat ein Beispiel, das im VS nicht komplett rot leuchtet und eine relativ gute Doku...

Thema: Android Bluetooth
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo zusammen

Ich würde gerne eine Xamarin Forms/ Android - Anwendung schreiben die Bluetooth nutzt. Anfangs wollte ich eigentlich ein Plugin nutzen, jedoch komme ich mit den im Netz auffindbaren Plugins nicht klar. Beispielanwendungen sind meist veraltet ,zeigen im Code viele "Deprectated" - Fehler oder funktionieren erst gar nicht mehr, oder/und die Dokumentation ist zu kryptisch. Nun habe ich angefangen einen eigenen einfachen Client aufzusetzen. Einige Funktionen sind soweit vorhanden, so dass ich alle verbundenen Gerät bekomme und auch ein ausgewähltes Gerät verbinden kann. Ich würde jetzt gern noch die Umgebung nach verfügbaren Geräten absuchen, jedoch finde ich nun mehr seit 5 Tagen intensiver suche keine passende Lösung dazu. Ich währe hier für Hilfe vll. in Verbindung mit einer Erklärung sehr Dankbar! Die Verbindung wird via Interface aufgebaut.

Thema: Xamarin Forms Bluetooth Plugin
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo zusammen

ich würde gerne eine Applikation schreiben( Android / IOS ), die Bluetooth nutzt. Jetzt sind relativ viele Plugins zu finden. Mit welchen arbeitet ihr, bzw. welche sind gut zu händeln, gut dokumentiert und erprobt? Was empfehlt ihr?

Thema: Grundlegende Fragen zu RESTful
Am im Forum: Web-Technologien

Hallo zusammen

Ich habe eine grundlegende Frage zu RESTful. Ich arbeite gerade an einem Videokurs, in dem werden Daten im JSON- Format von einer Webadresse abgerufen, formatiert und in eine App eingelesen. Nun ist meine Frage: Wie erkennt man, dass eine Seite Daten in diesem Format bereit stellt, bzw. eine derartige API unterstütz? Zudem wie erkennt man welche Datenfelder bereit gestellt werden?

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich hab den Fehler gefunden! Mein Fehler war, dass ich das File via Drag-and-drop in den Dateiorder gezogen habe. Nachdem ich die Datei via " Vorhandenes Element Hinzufügen" im VisualStudio Hinzugefügt habe, hats geklappt! Danek euch allen für eure Hilfe.

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

geht auch nicht, weder mit '.' noch mit "\"

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich bekomme immer noch einen Fehler, weil er die Datei nicht findet. Ich habe die Datei auch schon mehrmals anders positioniert..


        private List<Search> _searches;
        public IEnumerable<Search> GetAll()
        {
            _searches = new List<Search>();
            int i = 0;

            string file = "StaedteUSA.txt";
            using (StreamReader s = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("XamarinForms.LocationService.Resources." + file)))
            {
                while (s.EndOfStream == false)
                {
                    string FileRow = s.ReadLine();
                    string[] DataSplit = FileRow.Split('\t');

                    i++;

                    _searches.Add(
                        new Search
                        {
                            Id = i,
                            Location = DataSplit[0] + ", " + DataSplit[1] + ", " + DataSplit[2],
                            CheckIn = DateTime.Parse(DataSplit[3]),
                            CheckOut = DateTime.Parse(DataSplit[4])
                        }
                        );
                }
            }
            return _searches;
        }
        

( Mir ist bewusst, dass das alles async sein sollte, jedoch geht`s hier wieder nur um ein einfaches Lernprojekt, an das ich eine veränderbare Datei anhängen möchte. )

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich bekomme keinen Dateizugriff!? Gibt es etwas Besonderes zu beachten, in Verbindung mit Xamarin, beim Dateizugriff?

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ok jetzt hüpfts, ich habe die csv als Ressource Eingebettet, das hat ihm nicht gefallen. Allerdings kann er jetzt die Datei nicht finden, egal wo ich sie hin packe.

Thema: Inkompatibilität Xamarin Forms System.IO
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo

Ich bin mir nicht sicher, ob ich korrekt bin, aber ich Versuche es einmal. Ich würde gern eine csv- Datei lesen unter Xamarin Forms, jedoch wenn ich den System.IO Namespace ein binde, bekomme ich einen Fehler, dass eine Datei fehlt unter Android. Ich habe auch versucht dem Android- Projekt das System.IO Nuget zu hinzuzufügen, jedoch ohne Erfolg. Weiß jemand Rat?

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Super! Das hat geklappt! Dankeschön!

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Jetzt hab ich noch ein Problem. Die ListBox zeigt einen Fehler, wenn nichts selectirt ist. Der Rahmen wird dann rot. Lässt sich das unterdrücken?

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Entschuldigung @Abt .... Deine Lösung klappt und ist das was ich gesucht habe! Vielen Dank!

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Ich würde einfach nur gern aus dem ausgewählten Item die Id abgreifen und mit dieser dann weiter arbeiten, ohne das ganze Model im VM abzufangen. Es geht wohl auch so, aber mir gefällt die LocationModel Property nicht im VM. Deshalb würde ich gerne nur die ID Binden. Das würde ich gern schon im XAML so Biden, dass direkt die Id aus dem Item übergeben wird. Oder ist dieses Handling falsch?

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Hier der XAML- Codeausschnitt


                    <ListBox x:Name="ListLocations"
                            AlternationCount="2"
                            Background="#FF1F1F1F"
                            ItemContainerStyle="{DynamicResource _ListBoxItemStyle}"
                            SelectedItem="{Binding ID, Mode=twoWay}"
                            ItemsSource="{Binding WareHouseCollection}"
                            SelectedValuePath="@Id"
                            Margin="0,5,0,0"
                            Grid.Row="1" 
                            IsSynchronizedWithCurrentItem="True">
                       
                       
                        
                        <ListBox.ItemTemplate>
                            <DataTemplate x:Name="WareHouseTamplet">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>

                                    <!--#region Left Item area-->
                                    <Grid>

                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="50"/>
                                        </Grid.ColumnDefinitions>

                                        <Grid Grid.Column="0">
                                            <Grid.RowDefinitions>
                                                <RowDefinition Height="Auto"/>
                                                <RowDefinition Height="Auto"/>
                                            </Grid.RowDefinitions>

                                            <TextBlock Grid.Row="0" Name="LblID" 
                                                       Margin="5,0,0,0" FontSize="16" 
                                                       HorizontalAlignment="Left" Foreground="White" FontWeight="Bold" Text="{Binding Id}" />

                                            <svgc:SvgViewbox Width="25" Grid.Row="1" 
                                                             HorizontalAlignment="Left" VerticalAlignment="Center" 
                                                             Height="35" Source="Assets/Icons/right-arrow.svg" />

                                        </Grid>

                                    </Grid>

                                    <!--#endregion-->

                                    <!--#region Right Item area-->
                                    <Grid Grid.Column="1">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                        </Grid.RowDefinitions>

                                        <StackPanel Orientation="Horizontal" Grid.Row="0" Height="Auto">
                                            <TextBlock Name="LbLStockName" Margin="4,2,0,0" FontWeight="Bold" Foreground="White" Text="{Binding StockName}" Height="20"/>
                                        </StackPanel>

                                        <StackPanel Orientation="Horizontal" Grid.Row="1" Margin="0,3,0,0" Height="Auto">
                                            <TextBlock Name="LblStreet" Margin="5,0,0,0" Foreground="White" Text="{Binding Street}" Height="20"/>
                                            <TextBlock Name="LbLHousenumber" Margin="4,0,0,0" Foreground="White" Text="{Binding HouseNumber}" Height="20"/>
                                        </StackPanel>

                                        <StackPanel Orientation="Horizontal" Grid.Row="2" Height="Auto">
                                            <TextBlock Name="LblPostcode" Margin="5,0,0,2" Foreground="White" Text="{Binding Postcode}" />
                                            <TextBlock Name="LbLCity" Margin="4,0,0,2" Foreground="White" Text="{Binding City}" />
                                        </StackPanel>
                                    </Grid>
                                    <!--#endregion-->

                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

und die Property im VM sieht momentan so aus


       private LocationModel? selectedItem;
       public LocationModel? SelectedItem
       {
            get { return selectedItem; }
            set
            {
                selectedItem = value;
                ID = value.Id;
                RaisePropertyChanged();
            }
       }

Nun würde ich aber gern einfach nur die Id als Property abgreifen:


   private int  id;
   public int ID
   {
            get { return id; }
            set 
            { 
                id = value;
                RaisePropertyChanged();
            }
     }

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Ich würde gern einfach nur den Wert der ID des SelectedItem im VM binden und nicht das ganze Item. Aktuell bekomme ich das Item (das einem Model entspricht) nach der Selektierung.

Thema: WPF Listbox SelectedItem Wert aus Teplate
Am im Forum: GUI: WPF und XAML

Hallo

Ich habe eine Listbox mit einem ItemTemplate. Dieses Template implementiert mehrere StackPanel mit Textblöcken , die an eine ObservableCollection im VM gebunden sind.
Nun würde ich gern lediglich einen Wert (ID) des gewählten Item zurück geben und nicht das ganze Item. Wie lässt sich das im XAML lösen? (Ein Model des Item hab ich angehängt)

Thema: Binden an DataGrid- DataGrid
Am im Forum: GUI: WPF und XAML

Noch einmal vielen Dank! Deine Lösung hat mich weiter gebracht, da sie mich zu vielen interessanten Themen geführt hat und ich daran doch sehr viel gelernt habe! Ich habe nun das UnitOfWork- und Repository- Entwurfsmuster in Verbindung mit Dependency Injection Implementiert. Meine Lösung sieht wie folgt aus:



public ObservableCollection<LocationModel> WareHouseCollection { get; set; } = new();

        public async void LoadingWarehousesAsync()
        {
            isWarehousesLoading = true;

            if (WareHouseCollection.Count > 0)
                    WareHouseCollection.Clear();

            using (var UoW = new MSSQLS_UnitOfWork(new MSSQLS_EFContext()))
            {
                var Locations = await Task.Run(() => UoW.Addresses.GetAllAsync());

                foreach (var Location in Locations)
                {
                    WareHouseCollection.Add(
                       new LocationModel()
                       {
                           Id = Location.Id,
                           City = Location.City,
                           HouseNumber = Location.HouseNumber,
                           Postcode = Location.Postcode,
                           StockName = Location.StockName,
                           Street = Location.Street,
                       });
                }

            }
            
            isWarehousesLoading = false;
            
            RaisePropertyChanged(nameof(WareHouseCollection));
            RaisePropertyChanged(nameof(isWarehousesLoading));
        }

nur eine Frage hätt ich noch, da ich den Ladevorgang am Anfang ja brauche und er aber nicht im Konstruktor sein soll, wie starte ich ihn am besten? Meine Idee wäre ein Event in der View gewesen, auf das ich mich registriere, ViewLoading eventuell.

Thema: Validation MVVM WPF
Am im Forum: GUI: WPF und XAML

Vielen Dank! Das hilft!

Thema: Validation MVVM WPF
Am im Forum: GUI: WPF und XAML

Hallo zusammen!

Ich hätte gern gewusst wo beim MVVM-Muster die Validation statt findet. Mein Gedanke ist, dass die Validation im VM implementiert wird und über ein Event eine Messagebox in der View ausgelöst wird, wenn eine Validation fehl schlägt. Liege ich mit dieser Annahme richtig?

Thema: Entity Framework => MS SQL-Server Tabellenabhängigkeit
Am im Forum: Datentechnologien

Ist das so in Ordnung, einen Löschvorgang mit:


var Deleted = Task.Run(async()=> await UoW.Addresses.Delete(AddAddress));

aufzurufen?

Der Task:


 public virtual Task Delete(T entity)
        {
            _context.Set<T>().Remove(entity);
            return Task.CompletedTask;
        }

Thema: Entity Framework => MS SQL-Server Tabellenabhängigkeit
Am im Forum: Datentechnologien

Arg viel mehr Code gibt es nicht. Meine erstellte Anwendung dient zum erlernen. Der Aufbau geht mit einem Repository-Pattern über eine UnitOfWork. In einer Consolen- Anwendung erstelle ich Abfragen. Erstellt wurde die Datenbank mit Code-First (@Abt => Wie im anderen Tread besprochen )

UoW:


 public class MSSQLS_UnitOfWork : IUnitOfWork, IDisposable
    {
        private readonly MSSQLS_EFContext _context;

        public IGatesRepository Gates { get; set; }
        public IPlacesRepository Places { get; set; }
        public IEmptysRepository Emptys { get; set; }
        public IAddressRepsitory Addresses { get; set; }
        public ITruckRegistrationRepository TruckRegistration { get; set; }

        public MSSQLS_UnitOfWork(MSSQLS_EFContext context)
        {
            _context = context;
            Gates = new MSSQLS_GatesRepository(_context);
            Places = new MSSQLS_PlacesRepository(_context);
            Emptys = new MSSQLS_EmptysRepository(_context);
            Addresses = new MSSQLS_AddressRepository(_context);
            TruckRegistration = new MSSQLS_TruckRegistrationRepository(_context);
        }

        public async Task CompleteAsync()
        {
            await _context.SaveChangesAsync();
        }

        public void Dispose()
        {
            _context.Dispose();
        }
  }

Address- Repository:


 public class MSSQLS_AddressRepository : MSSQLS_Repository<Address>, IAddressRepsitory
    {
        public MSSQLS_AddressRepository(MSSQLS_EFContext context) : base(context)
        {
        }

    }

Repository:


    public class MSSQLS_Repository<T> : IRepository<T> where T : class
    {
        protected MSSQLS_EFContext _context;
        internal DbSet<T> dbSet;


        public MSSQLS_Repository(MSSQLS_EFContext context)
        {
            _context = context;
            dbSet = context.Set<T>();
        }

        public virtual T Add(T t)
        {
            _context.Set<T>().Add(t);
            _context.SaveChanges();
            return t;
        }

        public virtual async Task<T> AddAsync(T t)
        {
            _context.Set<T>().Add(t);
            await _context.SaveChangesAsync();
            return t;
        }

        public int Count()
        {
            return _context.Set<T>().Count();
        }

        public async Task<int> CountAsync()
        {
            return await _context.Set<T>().CountAsync();
        }

        public virtual void Delete(T entity)
        {
            _context.Set<T>().Remove(entity);
            _context.SaveChanges();
        }

        public virtual async Task<int> DeleteAsync(T entity)
        {
            _context.Set<T>().Remove(entity);
            return await _context.SaveChangesAsync();
        }

        private bool disposed = false;
        protected virtual void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    _context.Dispose();
                }
                disposed = true;
            }
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        public virtual T Find(Expression<Func<T, bool>> match)
        {
            return _context.Set<T>().SingleOrDefault(match);
        }

        public ICollection<T> FindAll(Expression<Func<T, bool>> match)
        {
            return _context.Set<T>().Where(match).ToList();
        }

        public async Task<ICollection<T>> FindAllAsync(Expression<Func<T, bool>> match)
        {
            return await _context.Set<T>().Where(match).ToListAsync();
        }

        public virtual async Task<T> FindAsync(Expression<Func<T, bool>> match)
        {
            return await _context.Set<T>().SingleOrDefaultAsync(match);
        }

        public virtual IQueryable<T> FindBy(Expression<Func<T, bool>> predicate)
        {
            IQueryable<T> query = _context.Set<T>().Where(predicate);
            return query;
        }

        public virtual async Task<ICollection<T>> FindByAsync(Expression<Func<T, bool>> predicate)
        {
            return await _context.Set<T>().Where(predicate).ToListAsync();
        }

        public T GetById(int id)
        {
            return _context.Set<T>().Find(id);
        }

        public virtual async Task<T> GetByIdAsync(int id)
        {
            return await _context.Set<T>().FindAsync(id);
        }

        public IQueryable<T> GetAll()
        {
            return _context.Set<T>();
        }

        public virtual async Task<ICollection<T>> GetAllAsync()
        {
            return await _context.Set<T>().ToListAsync();
        }

        public IQueryable<T> GetAllIncluding(params Expression<Func<T, object>>[] includeProperties)
        {
            IQueryable<T> queryable = GetAll();
            foreach (Expression<Func<T, object>> includeProperty in includeProperties)
            {

                queryable = queryable.Include(includeProperty);
            }

            return queryable;
        }

        public virtual void Save()
        {
            _context.SaveChanges();
        }

        public async virtual Task<int> SaveAsync()
        {
            return await _context.SaveChangesAsync();
        }

        public virtual T Update(T t, object key)
        {
            if (t == null)
                return null;
            T exist = _context.Set<T>().Find(key);
            if (exist != null)
            {
                _context.Entry(exist).CurrentValues.SetValues(t);
                _context.SaveChanges();
            }
            return exist;
        }

        public virtual async Task<T> UpdateAsync(T t, object key)
        {
            if (t == null)
                return null;
            T exist = await _context.Set<T>().FindAsync(key);
            if (exist != null)
            {
                _context.Entry(exist).CurrentValues.SetValues(t);
                await _context.SaveChangesAsync();
            }
            return exist;
        }
    }

Address Model:


public class Address
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Required]
        public int Id { get; set; }
        public string StockName { get; set; }
        public string Postcode { get; set; }
        public string City { get; set; }
        public string Street { get; set; }
        public string HouseNumber { get; set; }

        public virtual ICollection<Place> Place { get; set; }
    }

DbContext:


public class MSSQLS_EFContext : DbContext
    {
        public DbSet<Address> Addresses { get; set; }
        public DbSet<Place> Places { get; set; }
        public DbSet<Gate> Gates { get; set; }
        public DbSet<TruckRegistration> TruckRegistrations { get; set; }
        public DbSet<Empty> Emptys { get; set; }
    }

Thema: Entity Framework => MS SQL-Server Tabellenabhängigkeit
Am im Forum: Datentechnologien

Entschuldigung!
Es war wohl eine Unstimmigkeit im Context zur Datenbank, jetzt klappt erstellen einer Address und einem Place, aber mehre Places mit mehreren Gates boykottiert er!

:


//Gates
                List<Gate> GateList = new List<Gate>();
                GateList.Add(new Gate() { Ramp = "Rampe 1" });
                GateList.Add(new Gate() { Ramp = "Rampe 2" });
                GateList.Add(new Gate() { Ramp = "Rampe 3" });

                //Places
                List<Place> PlaceList = new List<Place>();
                PlaceList.Add(new Place() { Area = "Halle 1", Gates = GateList});
                PlaceList.Add(new Place() { Area = "Halle 2", Gates = GateList});
                PlaceList.Add(new Place() { Area = "Halle 3", Gates = GateList});

                //Add compleate Dataset
                var AddAddress = UoW.Addresses.Add(new Address { City = "Stadt", HouseNumber = "4", Postcode = "08151", StockName = "Stock 1", Street = "Straße", Place = PlaceList});

Fehler
System.InvalidOperationException: "Multiplicity constraint violated. The role 'Gate_Place_Target' of the relationship 'EFCoreToMSSQLS.Gate_Place' has multiplicity 1 or 0..1."

Thema: Entity Framework => MS SQL-Server Tabellenabhängigkeit
Am im Forum: Datentechnologien

Die ID`s werden via autoincrement in der Datenbank generiert, im Model habe ich das so angegeben:


public class Address
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Required]
        public int Id { get; set; }
        public string StockName { get; set; }
        public string Postcode { get; set; }
        public string City { get; set; }
        public string Street { get; set; }
        public string HouseNumber { get; set; }

        public virtual ICollection<Place> Place { get; set; }
    }

Thema: Entity Framework => MS SQL-Server Tabellenabhängigkeit
Am im Forum: Datentechnologien

Verwendetes Datenbanksystem: <Entity Framework mit MSSQL_Server ->

Hallo Zusammen, ich habe den im Anhang befindlichen Datenbankaufbau. Nun würde ich gern einen Datensatz hinzufügen, jedoch habe ich Schwierigkeiten mit der Tabelle "Gates". Es werden zwar ID`s beim Erstellen des Adress- Datensatz für die "Places" erstellt, jedoch nicht für die "Gates" , was in einem Error endet.


                //Gates
                List<Gate> GateList = new List<Gate>();
                GateList.Add(new Gate() { Ramp = "Rampe 1" });
                GateList.Add(new Gate() { Ramp = "Rampe 2" });
                GateList.Add(new Gate() { Ramp = "Rampe 3" });

                //Places
                List<Place> PlaceList = new List<Place>();
                PlaceList.Add(new Place() { Area = "Halle 1", Gates = GateList });

                //Add completely Dataset
                var AddAddress = UoW.Addresses.Add(new Address { City = "Stadt", HouseNumber = "4", Postcode = "08151", StockName = "Stock 1", Street = "Straße", Place = PlaceList});

Wie kann ich "Gates" das korrekt anbinden beim Add?